Я читаю Java puzzlers от Joshua Bloch. В головоломке 28, я не в состоянии понять следующее paragraph-Прояснение с плавающей запятой Java
Это работает, потому что чем больше значения с плавающей точкой, тем больше расстояния между значением и его преемником. Это распределение значений плавающей запятой является следствием их представления с фиксированным числом значимых бит . Добавление 1 к значению с плавающей запятой , которое достаточно велико, не изменит значение, поскольку оно не «связывает промежуток» с его преемником.
- Почему большие значения с плавающей точкой имеют большие расстояния между их значениями и преемниками?
- В случае
Integer
, мы добавляем один, чтобы получить следующийInteger
, но в случаеfloat
, как мы можем получить следующееfloat
значение? Если у меня есть значение float в формате IEEE-754, добавьте ли я 1 к части мантиссы, чтобы получить следующий float?
Отличный ответ, отличная ссылка. Благодаря! –