sample.c文件:上面的代碼錯誤的行爲ATOF的()
#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)
請建議我是否失去了一些東西。 在此先感謝。
sample.c文件:上面的代碼錯誤的行爲ATOF的()
#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)
請建議我是否失去了一些東西。 在此先感謝。
從浮動改變翻一番有點幫助,但沒有「解決」的「問題「。首先,沒有問題,只有一種看法。正如Dayal Rai所說,111.099998是最接近你使用浮球的111.1。但即使是double也不能表示111.1,因爲如果使用更多小數位打印它的值,您會發現它。請參閱索希爾奧默引用的參考文獻。
試着用'double'。我經常遇到一些隨機問題,通過使用'float' –
它是因爲double類型(返回類型'atof')的類型轉換爲float,導致最接近的float類型。 –
默認atof以雙數據類型返回。 – Ishmeet