Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
3-1082539137
Sirus
2004-04-21 13:18
2004.05.23
Установка Firebird на комп вручную...


9-1071243483
KefiR™
2003-12-12 18:38
2004.05.23
Мой движок


14-1083747350
Maxim Vetera
2004-05-05 12:55
2004.05.23
Google нас обманывает?


14-1083436789
RealRascal
2004-05-01 22:39
2004.05.23
Ярлыком выключить монитор


4-1080930218
xamlo
2004-04-02 22:23
2004.05.23
Програмное нажатие мыши




   Наверх