Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Использование типа 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.071 c
3-1082149737
lockheed_man
2004-04-17 01:08
2004.05.23
поиск записи в таблице


1-1084297006
Oleg_
2004-05-11 21:36
2004.05.23
ошибка при открытии файла excel


3-1083020634
rosl
2004-04-27 03:03
2004.05.23
запрос SQL


14-1083688436
C_R_U_S_H
2004-05-04 20:33
2004.05.23
Приложение Ns.exe грузит центральный процессор на 100%


4-1080815064
WELLiON
2004-04-01 14:24
2004.05.23
Исчезающий значок из трея