我在使用BigDecimal執行除法時得到不正確的結果。 NUMBER1 = 221500.0 數字2 = 12.0 這裏是我的代碼片段:BigDecimal.Divide給出的結果不正確
BigDecimal d1 = new BigDecimal(String.valueOf(number1)).setScale(13, 4);
BigDecimal d2 = new BigDecimal(String.valueOf(number2)).setScale(13, 4);
return (d1.divide(d2, 13, 4)).doubleValue();
18458.333333333332
,如果我使用計算器它給 18458.333333333333333333333333333
讓我知道任何問題進行同樣的計算處理BigDecimal中的比例。如果有人讓我知道如何與計算器達到相同的結果,這將會有所幫助。
這是正確的結果。你真的需要這麼長的結果嗎? –
*確切*相同的結果?你的計算器是否吐出適量的3s,或者?實際上有3個無限的數量。 –
由於您需要13個值,BigDecimal正在如何工作。如果您的目的要求「精確的除法結果」,爲了比較目的,請乘以某個預先確定的閾值並作爲整數進行比較。在你的情況下,'double'不能保持這個值,所以舍入。 –