实数的其余部分

时间:2014-02-15 17:27:43

标签: java double

当我尝试此代码时:

double d=1.23;
        System.out.println(d%1);

输出为:0.22999999999999998

我的问题是:为什么?

1 个答案:

答案 0 :(得分:1)

简短的回答是双重不准确。 很长的答案是要了解您应该学习way double stored in memory

如果你想做准确的计算,我会使用java的BigDecimal对象

    BigDecimal num = new BigDecimal("1.23");
    System.out.println(num.remainder(new BigDecimal(1)));