头文件
函数原型 - double atof(const char *str);
复制代码
函数说明
- atof 为 ascii to floating point numbers 的缩写,将字符串转换为双精度浮点数(double);
- atof() 会扫描输入字符串 str*,跳过前面的空格字符(如空格,tab等),直到遇到数字或正负符号才开始做转换,在遇到非数字 或 该字符串结束(‘\0’) 时会结束转换,并将结果返回。 字符串 str* 可包含正负号、小数点或E(e)来表示指数部分,如 123.456 或 123e-2;
返回值
返回转换后的浮点数,如果字符串 str* 不能被转换为 double,则返回 0.0(如果 atof() 先遇到字符,返回 0.0)。
示例 - #include <stdio.h>
- #include <stdlib.h>
- #define NUM (255)
-
- int main()
- {
- char a[NUM] = "-110.3456";
- char b[NUM] = "-123.4 56.78";
- char c[NUM] = "1234hsf";
- char d[NUM] = "ada1234";
- char e[NUM] = "1234aaf1456";
- char f[NUM] = "1234aaf 1456";
- char g[NUM] = "200e-2";
- printf("a = %.4lf\n",atof(a));
- printf("b = %.2lf\n",atof(b));
- printf("c = %.2lf\n",atof(c));
- printf("d = %.2lf\n",atof(d));
- printf("e = %.2lf\n",atof(e));
- printf("f = %.2lf\n",atof(f));
- printf("g = %.2lf\n",atof(g));
-
- return 0;
- }
复制代码
执行结果为: a = -110.3456 b = -123.40 c = 1234.00 d = 0.00 e = 1234.00 f = 1234.00 g = 2.00 |