当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。