當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 atof用法及代碼示例


C語言stdlib頭文件(stdlib.h)中atof函數的用法及代碼示例。

用法:

double atof (const char* str);
將字符串轉換為雙精度
解析C字符串str,將其內容解釋為浮點數,並將其值返回為double

該函數首先丟棄盡可能多的空格字符(如isspace),直到找到第一個非空白字符為止。然後,從該字符開始,采用與浮點字麵量類似的語法(請參見下文),盡可能多地使用有效的字符,並將其解釋為數值。最後一個有效字符之後的其餘字符串將被忽略,並且對此函數的行為沒有影響。

有效的浮點數atof使用"C"語言環境由可選的符號字符(+或者-),然後是數字序列,可以選擇包含小數點字符(.),然後可選的是 index 部分(e或者E字符,後跟一個可選的符號和一個數字序列)。
有效的浮點數atof使用"C"語言環境由可選的符號字符(+或者-),然後輸入以下內容之一:
-一個數字序列,可以選擇包含小數點字符(.),然後可選的是 index 部分(e或者E字符,後跟一個可選的符號和一個數字序列)。
- 一種0x或者0X前綴,然後是十六進製數字序列(如isxdigit)(可選)包含一個將整數部分和小數部分分開的句點。可選地,其後為2的冪(ap或者P字符,後跟一個可選的符號和一個十六進製數字序列)。
--INF或者INFINITY(忽略大小寫)。
--NAN或者NAN順序(忽略大小寫),其中順序是一個字符序列,其中每個字符都是字母數字字符(如isalnum)或下劃線字符(_)。

如果第一個非空格字符序列str不能像剛剛定義的那樣形成有效的浮點數,或者如果不存在這樣的序列,因為str為空或僅包含空格字符,不執行任何轉換並且該函數返回0.0

參數

str
C-string以浮點數表示開頭。

返回值

成功後,該函數將轉換後的浮點數返回為double值。
如果無法執行有效的轉換,則該函數返回零(0.0)。
如果轉換後的值超出可表示值範圍的範圍,則double,它導致未定義的行為。看strtod在可能的情況下,使用更健壯的cross-platform替代方案。

示例

/* atof example: sine calculator */
#include <stdio.h>      /* printf, fgets */
#include <stdlib.h>     /* atof */
#include <math.h>       /* sin */

int main ()
{
  double n,m;
  double pi=3.1415926535;
  char buffer[256];
  printf ("Enter degrees: ");
  fgets (buffer,256,stdin);
  n = atof (buffer);
  m = sin (n*pi/180);
  printf ("The sine of %f degrees is %f\n" , n, m);
  return 0;
}


輸出:

Enter degrees: 45
The sine of 45.000000 degrees is 0.707101



相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C atof function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。