
在这行业务逻辑代码中用Double来统计金额

展示到页面时发现精度丢失

使用BigDecimal封装的方法valueOf 转化为BigDecimal类型数据
BigDecimal中封装了很多数值计算的方法
如num1.subtract(num2,mc)相当于num1-mum2 mc是设置的精度可以调策略 比如四舍五入 可以看底层原码 有很多
num1.add(num2,mc) 相当于num1+num2

这里回复到小数点后2位
前后我使用的数据页面不同 导致结果不同 不是因为精度丢失导致的差距这么大这个要注意
在处理金融业务时,发现使用Double计算金额导致精度丢失。为解决此问题,文章介绍了如何利用BigDecimal的valueOf方法将Double转换为高精度的BigDecimal对象,并利用其内置的数值计算方法,如subtract和add,配合指定精度策略(如四舍五入),确保计算精确到小数点后特定位数。注意,不同页面的数据展示差异可能导致结果不同,但这并不一定是由于精度问题引起的。
1381

被折叠的 条评论
为什么被折叠?



