当我尝试此代码时:
double d=1.23;
System.out.println(d%1);
输出为:0.22999999999999998
我的问题是:为什么?
答案 0 :(得分:1)
简短的回答是双重不准确。 很长的答案是要了解您应该学习way double stored in memory
如果你想做准确的计算,我会使用java的BigDecimal
对象
BigDecimal num = new BigDecimal("1.23");
System.out.println(num.remainder(new BigDecimal(1)));