java的double乘法精度问题


项目中实际的代码,我们实际的金额单位是元,精确到分,另外一个系统传递的时候需要的是整数,就是分,我们就简单乘以100转换了下,结果发现是有问题的:


public static void main(String[] args) {
        double payMoney = Double.valueOf("1253.59");
        String result = String.valueOf((int)(payMoney * 100));
        System.out.println(result);
    }




结果是:125358
因为1253.59*100 的结果是 125358.99999999999

还比较没有想到乘以100这种都有问题。

解决的方法是用BigDecimal,就不多说了。

猜你喜欢

转载自huangyunbin.iteye.com/blog/2346664