在处理Java基元类型float
时,我遇到了一些有趣的问题我尝试从Float.MAX_VALUE中减去1.0,奇怪的是它返回值等于Float.MAX_VALUE。这是一个例子:
float floatMaxValue = Float.MAX_VALUE;
float subtractedMaxValue = Float.MAX_VALUE - 1.0f;
System.out.println(floatMaxValue);
System.out.println(subtractedMaxValue);
Assert.assertTrue(floatMaxValue == subtractedMaxValue); // return true even false expected
有人可以解释一下为什么会这样吗?我想浮点数有些神奇。