将字符串从结构转换为浮点值

时间:2015-08-01 05:53:30

标签: c

我正在使用<stdio.h><string.h>

fp的文本文件仅包含420.42

fgets(str[0].flo, 7, fp)

有7个字符的字符串“420.42”(4,2,0,。,4,2,\ 0)

当我尝试通过atof()

将其转换为浮点数时
float flt = 0;
flt = atof(str[0].flo);

flt的值不是420.42;我做错了还是有不同的方式?

2 个答案:

答案 0 :(得分:1)

如果您收到0.0000结果,可能是您在包含列表中省略了stdlib.h

即便如此,你会得到类似420.420013的内容,因为420.42无法用23位尾数完全表示。

答案 1 :(得分:0)

鉴于您仅包含<stdio.h><string.h>,但atof()中已声明<stdlib.h>,那么您正在做错了。

您没有设置足够的警告进行编译。

您尚未声明atof()函数,因此您的C编译器假定它返回int,而不是double