float - 32 бита.Экспонента 8 бит.Следовательно, значение и равно 32-8 = 24 бита (минус знак бита плюс один неявный бит).
Если 24 бита используются для хранения значимых (двоичных) цифр, то только log10 (2 ^ 24) = 7 десятичных значащихцифры могут быть сохранены независимо от того, являются ли они десятичными цифрами (после точки) или цифрами целочисленной части.
Почему в примере ниже 8-й десятичной цифры распознается?Где ошибка в моих рассуждениях?
float f1 = 16_711_711;
float f2 = 16_711_712;
System.out.println(f1 == f2); // false