Java 双重价值的倍增会产生意想不到的行为吗?

Java 双重价值的倍增会产生意想不到的行为吗?,java,double,bigdecimal,ieee-754,Java,Double,Bigdecimal,Ieee 754,我正在编写测试用例,在其中我看到了以下行为。如果有人能用外行的术语来描述这一点。添加标签ieee754 70D*1.1=77.0 50D*1.1=55.00000000000001?双精度值,您可以使用java.math.BigDecimal获得准确的结果: System.out.println(new BigDecimal("50").multiply(new BigDecimal("1.1"))); // 55.00 奥班克:但实际上,浮点的这个“问题”是你应该能够自己查的;这是一个关于某

我正在编写测试用例,在其中我看到了以下行为。如果有人能用外行的术语来描述这一点。添加标签ieee754

70D*1.1=77.0 50D*1.1=55.00000000000001?

双精度值,您可以使用
java.math.BigDecimal
获得准确的结果:

System.out.println(new BigDecimal("50").multiply(new BigDecimal("1.1"))); // 55.00

奥班克:但实际上,浮点的这个“问题”是你应该能够自己查的;这是一个关于某某和整个网络的多重重复问题。可能是我试过的@RudyVelthuis的重复。在
java版本“10.0.1”
上,它可以正常工作。这一个可以,因为对于
valueOf()
,java使用往返格式。对于其他值,这仍然注定会失败。使用FP引入的不精确性不能总是通过
valueOf()
来“纠正”。