先看一段代码示例:
<代码> system . out。println(新BigDecimal (0.99)); system . out。println(新BigDecimal (" 0.99 ")); System.out.println (BigDecimal.valueOf (0.99)); system . out。println(新BigDecimal (Double.valueOf (0.99))); system . out。println(新BigDecimal (Double.valueOf (0.99) .toString())), 代码>
输出结果如下:
<代码> 0.9899999999999999911182158029987476766109466552734375 0.99 0.99 0.9899999999999999911182158029987476766109466552734375 0.99 代码>
可以看到新BigDecimal (double)类型时,小数的精度出现扩展。
总结:
如果使用新BigDecimal()时,尽可能转换为字符串,或者直接使用BigDecimal.valueof (double)