0
在我的應用程序我使用此來計算一個數字:爲什麼我在我的android應用程序中得到錯誤的計算結果?
double result = ((a * a) + (b * b) - (2 * a * b));
如果例如α= 2和b = 3.9,則結果應該是3.61。但是,當我顯示「結果」時,我得到的號碼是3.610000000000001。
這裏有什麼問題?我該如何糾正這個錯誤?
在我的應用程序我使用此來計算一個數字:爲什麼我在我的android應用程序中得到錯誤的計算結果?
double result = ((a * a) + (b * b) - (2 * a * b));
如果例如α= 2和b = 3.9,則結果應該是3.61。但是,當我顯示「結果」時,我得到的號碼是3.610000000000001。
這裏有什麼問題?我該如何糾正這個錯誤?
您可以通過下面的結構格式化輸出值:
String result;
twoDForm = new DecimalFormat("#0.00");
result = twoDForm.format(value);
此之後,結果你會在X.XX格式的值
嗯,如果A = 2和b = 3,那麼你得到了((2 * 2)+(3 * 3) - (2 * 2 * 3)),即(4 + 9 - 12),即1.你是否遺漏了一些代碼? –
這是典型的浮點表示法。請參閱http://en.wikipedia.org/wiki/Floating_point – njzk2
(幾乎可以肯定的是,真正的問題是您對浮點數的理解,如果必須具有「精確」結果,則使用BigDecimal就是答案。) –