Если в каком-либо источнике информации сказано, что FLOAT
может «сохранять до 7 цифр», то это неверно.
Когда используется формат IEEE-754 binary32, число представляется с помощью двоичных цифр , а не десятичные цифры. Нет точного соответствия между десятичными и двоичными цифрами. Точность формата binary32 достаточна, чтобы любое десятичное число six-di git в пределах диапазона можно было преобразовать в binary32, а при обратном преобразовании в десятичное число six-di git результат будет равен. (Здесь десятичное число с шестью ди git означает число с шестью значащими цифрами, например, 123456000, 1,23456 • 10 −13 и т. Д.)
Многие более длинные десятичные дроби числа могут быть преобразованы в binary32 и обратно без изменений, но это зависит от их совпадения с числами, представляемыми в формате.
Для 1234567,89 ближайшим числом, представляемым в формате binary32, является 1234567,875. Это значение, которое должно получиться в результате преобразования в формат binary32. Если было напечатано «1234570», я ожидаю, что это результат округления до шести значащих цифр для отображения, так что истинное значение не отображается. Другая возможность состоит в том, что было использовано менее 24 бит, поддерживаемых в значении binary32.