我剛剛發現了一些奇怪的在我的代碼印刷浮點值安慰精密problem_
我創建簡單的應用程序,以顯示你有什麼我談論
float Test1 = 112.12;
float Test2 = 0.12;
printf("Test1 %15f", Test1);
printf("Test1 %15f", Test1);
我一直認爲,如果我寫的Test1 = 112.12這意味着它等於112.120000000
但是我得到112.120003
並在第二個例子中,我得到0.11999或0.120000這取決於
有人能解釋我爲什麼會出現這種情況會發生什麼,如果我嘗試這兩個數字將他們得到轉換爲double(或任何其他更精確的數據類型)劃分,所以我可以得到更高的精度,否則會在使用它們的當前形式(浮點)
我已經使用VS 2010中測試該(如果它的事項)
是的,我同意但不是更合乎邏輯它將數字「降低」到更低的值,如0.119999不是更高的值,然後我像第一個示例那樣輸入 – user996937
@ user996937 - 沒有「舍入」我只是給它一個它不能完全表示的數字,而這是它能夠提供的最好的數字。 –