从Float.MAX_VALUE中减去返回相同的值

时间:2018-03-25 18:27:59

标签: java floating-point primitive-types

在处理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

有人可以解释一下为什么会这样吗?我想浮点数有些神奇。

0 个答案:

没有答案