double数字转换精度丢失,有最大值上限
第一次做付款方面的接口,不懂规范,遇到了一个double转换精度丢失问题,代码如下
这是有问题的总金额计算的方式

这个代码出现两个问题:一个是total(int)大小有上限

第二个是:金额转换精度问题(涉及隐私代码大部分打码)


字符串转double后再乘以100,少了一分钱,51480变成了51479,但是另一笔260.32转换后又没有少,有大佬知道是什么原因吗?什么情况下会少1
下面是修复后的代码

后面查了float和double只能用来做科学计算,BigDecimal可用于商业计算,这样改了以后金额上限问题解决,精度也不会丢失
浙公网安备 33010602011771号