Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-9180
who
2002-02-14 10:05
2002.03.04
Передача параметров из exe в exe


1-9154
skywalker
2002-02-13 16:41
2002.03.04
SetLength


6-9264
Mag
2001-12-14 12:55
2002.03.04
Через какой компонент можно управлять по IPX другим компом???


1-9236
Alex L.
2002-02-15 17:39
2002.03.04
Объединение компонентов


14-9268
veZuk
2002-01-12 02:40
2002.03.04
Сколько дать за перевод?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский