1
可能重複:
C# float bug? 0.1 - 0.1 = 1.490116E-08
problem in comparing double values in C#0.2 + 0.3 = 0.5 ...問題的浮子式
在我的應用我想測試,如果浮動一=浮動b ,然後做一些操作。但是,我想知道,在浮動類型0.2 + 0.3 == 0.5返回false。
因此,這裏是我的代碼
float a = 0.3f;
float b = 0.2f;
float c = 0.5f;
if (a + b == c)
Console.WriteLine("true");
else
Console.WriteLine("false");
Console.WriteLine(a+b);
Console.WriteLine(c);
一些組成部分,這裏是這部分的結果
false
0.5
0.5
我無法弄清楚什麼是錯的... ...我可以使用雙或者小數點代替浮點數,但我想知道這裏有什麼問題。 感謝您的幫助。
http://stackoverflow.com/questions/1398753/problem-in-comparing-doublevalues-in-c – fl00r
這個答案應該可以解決你的問題:http://stackoverflow.com/questions/485175/c - 網絡是它的安全檢查浮點值的平等 - 0/485777#485777 – ChrisA
[什麼每個計算機科學家應該知道的浮點算術](http:// download .oracle.com /文檔/ CD/E19957-01/806-3568/ncg_goldberg.html) –