#include <stdlib.h>
double atof( const char *str );
将字符串 str 转换成一个双精度数值并返回结果。参数 str 必须以有效数字开头,但是允许以“E”或“e”除外的任意非数字字符结尾。
(1)待转换成双精度值的字符串是一个合法的字符串,如下:
#include <stdlib.h> #include <stdio.h> int main(void) { double f; char *str = "12345.67"; f = atof(str); printf("string = %s float = %f\n", str, f); return 0; }
输出结果:
string = 12345.67 float = 12345.670000
(2)待转换成双精度值的字符串首部是一个合法数字,但是尾部是一个非数字字符串。如下:
#include <stdlib.h> #include <stdio.h> int main(void) { double f; char *str = "42.0is_the_answer"; f = atof(str); printf("string = %s float = %f\n", str, f); return 0; }
输出结果:
string = 42.0is_the_answer float = 42.000000