C

atof

atof

在头文件中定义
double atof(const char * str);

解释str指向的字节串中的浮点值。

函数丢弃任何空格字符(由std :: isspace()确定),直到找到第一个非空白字符。 然后,它需要尽可能多的字符来形成有效的浮点表示并将它们转换为浮点值。 有效的浮点值可以是以下值之一:

  • 十进制浮点表达式。它由以下部分组成:

参数

str-指向要解释的以空字符结尾的字节字符串

返回值

若成功,则返回double值对应str的内容。 如果转换后的值超出了返回类型的范围,则返回值未定义。 如果不能执行转换,则返回0.0。

#include <stdlib.h> #include <stdio.h> int main(void) { printf("%g\n", atof(" -0.0000000123junk") printf("%g\n", atof("0.012") printf("%g\n", atof("15e16") printf("%g\n", atof("-0x1afp-2") printf("%g\n", atof("inF") printf("%g\n", atof("Nan") printf("%g\n", atof("1.0e+309") // UB: out of range of double printf("%g\n", atof("0.0") printf("%g\n", atof("junk") // no conversion can be performed }

可能的输出:

-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

strtofstrtodstrtold(C99)(C99)将字节字符串转换为浮点值(函数)

| 用于atof的C ++文档 |