浮点计算结果误差,以及解决方法

问题:

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就派上用场了,该类可以较灵活的控制小数点后的数值

posted @ 2018-03-05 11:00  glorythesky  阅读(1171)  评论(0编辑  收藏  举报