想創建簡單的while循環,直到我的變量將是0 所以我創建了一個在循環顯示0
do
{
x = x + 0.001;
cout << x0 << endl;
} while (SOME_CALCULATION != 0);
一切都很正常,直到我來到循環0,那麼我得到7.63278e-017,而不是0
環例如:
result: -0.003
result: -0.002
result: -0.001
result: 7.63278e-017
result: 0.001
result: 0.002
result: 0.003
這是浮點運算的正常和預期行爲。 – gnasher729
相關:[最有效的方法爲浮點數和雙重比較](http://stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison) –
我們可以假設使用兩個變量('x'和'x0'),以及上面片段中'cout'行和報告結果之間的差異只是拼寫錯誤? –