Главная страница
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.053 c
14-1083742581
X9
2004-05-05 11:36
2004.05.23
Клиент форума.


14-1083745384
Телефонный призрак
2004-05-05 12:23
2004.05.23
Меня кто-то преследует...


8-1078229290
gagarin
2004-03-02 15:08
2004.05.23
эффекты DirectX


4-1081167785
Sapsi
2004-04-05 16:23
2004.05.23
О сенд мессадж


3-1083065102
Homer
2004-04-27 15:25
2004.05.23
OnGetText динамически ?