我在使用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'不能保持这个值,所以舍入。 –