2012-10-01 30 views
0

在我的應用程序我使用此來計算一個數字:爲什麼我在我的android應用程序中得到錯誤的計算結果?

double result = ((a * a) + (b * b) - (2 * a * b)); 

如果例如α= 2和b = 3.9,則結果應該是3.61。但是,當我顯示「結果」時,我得到的號碼是3.610000000000001。

這裏有什麼問題?我該如何糾正這個錯誤?

+2

嗯,如果A = 2和b = 3,那麼你得到了((2 * 2)+(3 * 3) - (2 * 2 * 3)),即(4 + 9 - 12),即1.你是否遺漏了一些代碼? –

+2

這是典型的浮點表示法。請參閱http://en.wikipedia.org/wiki/Floating_point – njzk2

+4

(幾乎可以肯定的是,真正的問題是您對浮點數的理解,如果必須具有「精確」結果,則使用BigDecimal就是答案。) –

回答

3

您可以通過下面的結構格式化輸出值:

String result; 
twoDForm = new DecimalFormat("#0.00"); 
result = twoDForm.format(value); 

此之後,結果你會在X.XX格式的值

相關問題