public class Test {
public static void main(String[] args) {
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}
}
输出结果:
0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999
在Java中使用float与double运算会造成精度丢失,具体原因参考:
https://blog.csdn.net/abing37/article/details/5332798
解决方法:需要精确的表示两位小数时我们需要把他们转换为BigDecimal对象,然后再进行运算
工具类参考:https://www.cnblogs.com/bad-guy/p/7698845.html
import java.math.BigDecimal;
/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点