2012-12-06 59 views
0

可能重複:
Java: Calculations returning wrong answer?浮點型變量錯誤的答案

請explane爲什麼下面的程序沒有給予正確的輸出。

class Test 
{ 
    public static void main(String aa[]) 
    { 
     float a=16.15 f; 
     float b =10.0f; 

     float c =a-b; 
     System.out.println(c); 
    } 
} 

/****************/ 出認沽:-6.1499996

+5

http://docs.oracle.com/cd/ E19957-01/806-3568/ncg_goldberg.html – Mysticial

+0

浮點計算不能得到精確的.15精度。 – kosa

+1

對於這類問題應該有一些規範的標準答案,沒有一天沒有一天的時間過去了,他們沒有一打:'( – fvu

回答

0

這不是能夠存儲彩車一個完全正常的結果小數值正好。

-1

類型float沒有足夠好的精度返回-6.15。 double也可能不夠,浮點運算總是有一些誤差。

+0

這是一個問題它的基地 – tjltjl

0

因爲基數爲2的浮點數不能準確地表示16.15,因此減法的結果不完全是-6.15。