#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