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

Вниз

Простая ошибка? (The ‘Real’ is not Real)   Найти похожие ветки 

 
Shlomo ©   (2006-05-02 15:04) [0]

Здравствуйте!
Помогите, пожалуйста, разобраться. Не могу понять, почему не получается, хотя должно получаться.

Var r: Real;
..

r := 0.02;
if r = 0.02 then ShowMessage(‘Yes’) else ShowMessage(‘No’);
..


Так вот, показывает ‘No’.
Но почему? Почему r <> 0.02?


 
begin...end ©   (2006-05-02 15:07) [1]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374


 
Shlomo ©   (2006-05-02 15:52) [2]

begin...end ©

Спасибо за ссылку.
Но всё-таки, автор статью не даёт конкретных рецептов. Подскажите пожалуйста, если не трудно.


 
Palladin ©   (2006-05-02 15:54) [3]

1 использовать Currency
2 If trunc(r*100)=2


 
wal ©   (2006-05-02 15:56) [4]


> не даёт конкретных рецептов
А тут никаких конкретных рецептов нет. Если задача позволяет, то работать с целыми (непример, не с рублями, а с копейками), если не позволяет, то точное сравнение там вряд ли нужно, используй неточное, что-то вроде if Abs(r-0.02)<0.001 then ...

С уважением.


 
nt   (2006-05-02 18:27) [5]

учимся у сишников
Var r: Real;
begin
r := 0.02;
if r = real(0.02)
then writeln("Yes") else writeln("No");
end.

yes


 
nt   (2006-05-02 18:31) [6]

учимся у сишников, ребятки
Var r:Real;
begin
r := 0.02;
if r = real(0.02)
then writeln("Yes") else writeln("No");
end.
yes


 
Anatoly Podgoretsky ©   (2006-05-02 19:05) [7]

Потому что число 0,02 невозможно представить в машинном исчислении с плавающей запятой, вне зависимости от точности.


 
DiamondShark ©   (2006-05-02 22:05) [8]


> nt   (02.05.06 18:31) [6]

Ты такой смешной...


 
Гаврила ©   (2006-05-02 22:29) [9]

а я с нулем попробовал
получилось 8-0


 
nt   (2006-05-02 22:39) [10]

> DiamondShark ©   (02.05.06 22:05) [8]
ну, посмейся...


 
nt   (2006-05-02 22:50) [11]

смех - реакция на непонятное :-)


 
Джо ©   (2006-05-02 22:51) [12]

> [11] nt   (02.05.06 22:50)
> смех - реакция на непонятное :-)

Боюсь, что последняя фраза может вызвать новые приступы :)


 
wal ©   (2006-05-03 09:01) [13]


> [9] Гаврила ©   (02.05.06 22:29)
> а я с нулем попробовал
> получилось 8-0
0, небольшие целые, небольшие отрицательные степени двойки и их комбинации представляются в машине точно.


 
icWasya ©   (2006-05-03 10:52) [14]

>begin...end ©   (02.05.06 15:07) [1]
вод Вы говорили
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374

А на самом деле ещё хуже
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1217


 
Desdechado ©   (2006-05-03 11:20) [15]

http://delphimaster.net/view/2-1146211942/



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

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1146731374
De
2006-05-04 12:29
2006.05.21
При вызове функции из dll дает ошибку


15-1145890224
yaro
2006-04-24 18:50
2006.05.21
Автоматический пернос данных в таблицу


2-1146156377
Padre
2006-04-27 20:46
2006.05.21
прочитать 2 последние строчки текстового файлы


2-1147026747
Ksenom
2006-05-07 22:32
2006.05.21
Возможно интересный вопрос по указателям )


2-1146867723
tanya11
2006-05-06 02:22
2006.05.21
направление кнопки