之前做了一个需求是算成功率,求百分比的,考虑精度的问题选择了BigDecimal。
用的是BigDecimal的double参数的构造:
new BigDecimal(double val)
将一个double类型的数值通过此构造函数转换成String出现了精度问题,比如:
![](https://img.haomeiwen.com/i11095732/346ad37cc4e7e30d.png)
jdk api文档中这样写道:
![](https://img.haomeiwen.com/i11095732/3833dbe05a8bd567.png)
说白了就是别直接拿double变量做参数,最好使用String类型做参数或者使用静态方法valueOf(double)
![](https://img.haomeiwen.com/i11095732/4c3c07b7cf4a5d3c.png)
之前做了一个需求是算成功率,求百分比的,考虑精度的问题选择了BigDecimal。
用的是BigDecimal的double参数的构造:
new BigDecimal(double val)
将一个double类型的数值通过此构造函数转换成String出现了精度问题,比如:
jdk api文档中这样写道:
说白了就是别直接拿double变量做参数,最好使用String类型做参数或者使用静态方法valueOf(double)
本文标题:double转BigDecimal留下的坑
本文链接:https://www.haomeiwen.com/subject/dvfwictx.html
网友评论