Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизSingle Найти похожие ветки
← →
Юрий Зотов (M) (2002-02-15 21:10) [8]> Fast
Пусть мы делим 1000 на 999. Результат есть бесконечная дробь, которая не может уместиться в любое конечное число десятичных разрядов. Давайте посмотрим, какое строковое представление результата мы получим, задавая для него разную длину (то есть, отводя под него разное число разрядов):
3 цифры - 1.00
5 цифр - 1.0010
7 цифр - 1.001001
Почему так? Ведь число-то всегда одно и то же, а его изображения разные. Очевидно, все дело в том, какую длину разрядной сетки мы отводим под это число - то есть, где мы его "обрезаем".
То же самое происходит и у Вас. В памяти числа хранятся в двоичной системе счисления, а в ней 0.3 - это бесконечная дробь. Значит, поскольку Real, Single, Double и Extended имеют разное количество двоичных разрядов, одно и то же десятичное число 0.3 фактически будет РАЗНЫМ двоичным числом для каждого из этих типов. Что Вы и наблюдаете.
Прочитайте на "Королевстве" статью Антона Григорьева "Неочевидные особенности вещественных чисел" - многие вопросы исчезнут.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c