Java中new BigDecimal()的坑
先看一段代码示例:
System.out.println(new BigDecimal(0.99));System.out.println(new BigDecimal("0.99"));System.out.println(BigDecimal.valueOf(0.99));System.out.println(new BigDecimal(Double.valueOf(0.99)));System.out.println(new BigDecimal(Double.valueOf(0.99).toString()));
输出结果如下:
0.98999999999999999111821580299874767661094665527343750.990.990.98999999999999999111821580299874767661094665527343750.99
可以看到new BigDecimal(double)类型时,小数的精度出现扩展。
总结:
如果使用new BigDecimal()时,尽可能转换为String,或者直接使用BigDecimal.valueof(double)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。