我有這樣的代碼:C#float和double錯誤
static void Main()
{
float i;
for (i = 0; i <= 100; i = i + 0.01F)
{
Console.WriteLine(i);
}
}
而且它打印我:
0
0.01
0.02
0.03
0.04
0.05
0.05999999
0.06999999
0.07999999
0.08999999
0.09999999
0.11
這是一個錯誤還是我做錯了什麼? 有沒有解決這個問題的方法?
http://csharpindepth.com/Articles/General/FloatingPoint.aspx –
[什麼每臺計算機科學家應該知道關於浮點運算(HTTP:// docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) – Steve
[SO]上有許多重複內容解釋了C#和其他語言中浮點值的行爲,我選擇了其中一個思想很好地解釋了這個問題,如果你需要其他的解釋/例子,請做一個搜索[float bug .NET](http://stackoverflow.com/search?q=float+bug+%5B.net%5D) –