Sample.c:
#include<stdio.h>
#include<stdlib.h>
main()
{
char str[10] = "111.1";
float f = (float)atof(str);
printf ("\n (%s , %f) \n",str,f);
}
上述代码的输出是: (111.1,111.099998)
请告知我是否遗漏了一些东西。 提前谢谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
从浮动变为双重有点帮助,但没有解决&#34; &#34;问题。&#34;首先,没有问题,只是认为有一个问题。正如Dayal Rai所说,111.099998是最接近111.1使用浮动的。但即使是双倍也不能代表111.1,因为如果使用更多的小数位打印它的值,你会发现。参见Sohil Omer引用的参考文献。