Java双乘法解释?

Java双乘法解释?,java,double,Java,Double,我最近用下面的代码测试了一些我听到的东西 publicstaticvoidmain(字符串[]args){ 双x=4.35*100; 系统输出println(x); } 我感兴趣的是为什么这会产生434.9999994而不是435.0。感谢您键入以下内容: double x = 4.35; x未按原样存储。它以接近的形式存储(本例中可能为4.34999999) 如果您想要准确的结果,请使用 您可以了解浮点技术的重要性。这是一个精度问题。关于浮点精度的问题已经有无数了……双精度值是不精确的,请参

我最近用下面的代码测试了一些我听到的东西

publicstaticvoidmain(字符串[]args){
双x=4.35*100;
系统输出println(x);
}

我感兴趣的是为什么这会产生434.9999994而不是435.0。感谢您键入以下内容:

double x = 4.35;
x
未按原样存储。它以接近的形式存储(本例中可能为4.34999999)

如果您想要准确的结果,请使用


您可以了解浮点技术的重要性。

这是一个精度问题。关于浮点精度的问题已经有无数了……双精度值是不精确的,请参见4.35 is 100.01011001(10011001)。。。。。重复出现,即不可在二进制中精确表示。在最后几位小数中,你总是会有小的错误,如果是大的小数,我会遇到问题。考虑这个,BigDimple BD=新BigDecimal(4.35);System.out.println(bd.multiply(新的BigDecimal(6));