我们已知Java中有8种基本数据类型,整型:byte 、short、int、long ,浮点类型:float、double,boolean以及char,当进行科学计算时,我们使用long和double,但是当我们进行一些商业计算时,用这些基本类型可能会出现精度丢失问题,因此在商业中一定要用BigDecimal。
测试一
1 | @Test |
运行结果:
1 | 0.060000000000000005 |
分析:当用户要购买两件商品,一件0.05元,另一件0.01元,如果用基本数据类型浮点型,用户在实际支付时可能会不成功。
测试二
1 | @Test |
运行结果:
1 | 0.06000000000000000298372437868010820238851010799407958984375 |
与上述情况类似。
测试三
1 | @Test |
运行结果:
1 | 0.06 |
分析:用BigDecimal的String构造器达到了预期结果。故商业中一定要用BigDecimal的String构造器。
附加:BigDecimal的工具类
1 | package net.zzqd.mmall.util; |