2.4%2通常理解的话结果应该是0.4
但是在程序里输出之后结果是0.399999999 九循环,想问问是为什么
二进制无法精确表示浮点数的值,计算结果会有精度损失。
在涉及浮点数计算的时候请使用BigDecimal
public static void main(String[] args) { BigDecimal a = BigDecimal.valueOf(2.4); BigDecimal b = BigDecimal.valueOf(2); System.out.println(a.divideAndRemainder(b)[1]); }