用整数类型处理货币

eg:

System.out.println(10.00 - 9.93)

我们很期望它的结果是:0.07  但是它的值却是:0.07000000000000028  这是为什么呢?

浮点间的运算有可能是不正确的。这是有计算机的存储规则所决定的。

这种情况可以有两种解决方案:

  1. 使用BigDecimal .本身提供了常用的加减乘除的运算。专门为弥补计算浮点的。
    1. 使用整形。先将参与运算的值扩大100 倍。并转为整形。然后在缩小100倍。
posted @ 2014-04-06 21:07  饮露秋林  阅读(119)  评论(0编辑  收藏  举报