浮点计算结果误差,以及解决方法
问题:
1 public static void main(String[] args) { 2 3 float a = 3.6f; 4 int b = 7; 5 int c = 10; 6 7 System.out.println(a * b * c); 8 }
手动计算 a * b * c 应该等于252, 但实际输出结果是251.99998。这是因为计算机用二进制01无法精确表示某一些带小数位的十进制数据。
这时BigDecimal就派上用场了,该类可以较灵活的控制小数点后的数值