所有开发应该知道的二进制运算溢出问题--19.9
程序员文章站
2022-07-14 23:50:44
...
今天测试突然提了一个bug给我,系统里面抵扣砖石不对,我是真的惊了,从服务器拿的数据时19.9元 然后我们本地计算,钻石比例是100,然后转换为砖石之后变成了 1989,当初还以为是算错了,后面上网一查,原来是double类型二进制运算溢出问题,不光是java ,.net也会有这样的问题,只有19.9会出问题,9.9和29.9不会;
处理方案
BigDecimal bignum1 = new BigDecimal(servicePrice);
BigDecimal bignum2 = new BigDecimal("100");
BigDecimal bignum3 = bignum1.multiply(bignum2); //乘法运算
allMoney = bignum3 .intValue();//应付金额(分)
上一篇: java String.Format() 日期格式用法
下一篇: JSTL格式化日期