Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Использование типа Extended   Найти похожие ветки 

 
Zoom82   (2004-05-06 15:45) [0]

Доброго времени суток!

Вопрос связан с испольованием типа extended и его корректным отображением, необходимо вывести результат слудещего выражения:
1-(1,5E-19), т.е. вычесть из единицы число с 19 нулями после запятой.
Я пытался использовать вывод через FloatToStrF(1-(1,5E-19),ffExponent,18,2), но в результате выдаётся единица, хотя должно получиться число близкое к единице, но всё же не единица!

Если кто знает решение, буду признателен за помощь.


 
div ©   (2004-05-06 16:51) [1]

в типе extended значащих разрядов 19-20. а у тебя 19 нулей только после запятой. фактически ты из единицы вычитаешь ноль (так процессор понимает твое число).


 
WebErr ©   (2004-05-06 17:02) [2]

1) 1,5e-19 - здесь будет 18 нулей после запятой!
2) По умолчанию не Extended, а Real = Double, если не указано обратное (что Real=Real48).
3) Попробуйте сначала привести 1,5e-19 к типу Extended, а потом уже работать с этим числом, если Вам нужен именно Extended. Т.е. 1 - Extended(1,5e-19)


 
div ©   (2004-05-06 17:04) [3]

2 WebErr ©
даже если и 18 - это ничего не меняет... его значащие цифры ЗА пределами...


 
WebErr ©   (2004-05-06 17:08) [4]

Попробуйте:

a:=0.9;
b:=0.8;
c:=0.1;
d:=1e36;
t:=(a-b-c)*d;
writeln(t);

В консольно приложении либо writeln в файл.
:)
Предел - математическое понятие, и он как известно не достижим! ;)


 
Григорьев Антон   (2004-05-06 17:50) [5]

Вы наткнулись на то, что называется машинным эпсилон. Подробности в этой статье: http://www.delphikingdom.com/helloworld/reals.htm


 
Zoom82   (2004-05-06 20:56) [6]

Огромное спасибо всем за ответы!

Я нашёл такой выход - посчитать это число в стандартном виндовском калькуляторе. :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
3-1083311385
Stupid
2004-04-30 11:49
2004.05.23
как на момент комполяции pFIBDatabase сделать Connected=False.?


1-1083917182
snake1977
2004-05-07 12:06
2004.05.23
Поиск по маске


14-1083359080
Soft
2004-05-01 01:04
2004.05.23
Интернет, нужен ли он?


14-1083152485
Igorek
2004-04-28 15:41
2004.05.23
Предложение:


14-1083154935
Mr.Credo
2004-04-28 16:22
2004.05.23
Учебник





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский