Представляемые числа в верхнем конце диапазона float
разделены интервалами 2 124 , примерно 2,028 • 10 31 .Когда выполняется арифметика, результат округляется до ближайшего представимого значения.Математическое значение добавления 187 к float.MAX_VALUE
настолько близко к float.MAX_VALUE
, что результат округления равен float.MAX_VALUE
.
Таким образом, float.MAX_VALUE - 187
и float.MAX_VALUE + 187
равны.
Нет способа изменить это в типах float
или double
;Вот как они разработаны.Если вы хотите произвести более точные вычисления, существуют другие решения, такие как использование математического программного обеспечения с произвольной точностью или изменение ваших расчетов.