Главная страница
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.051 c
2-1146571467
kay
2006-05-02 16:04
2006.05.21
Как сделать скроллинг фрейма? Не получается.


4-1140775136
jeka_t
2006-02-24 12:58
2006.05.21
Как установить программно шрифт в Windows?


3-1143191600
kley
2006-03-24 12:13
2006.05.21
замена нулей


3-1143730751
Alex_12345
2006-03-30 18:59
2006.05.21
Apollo: не работает....


2-1146162824
Strate
2006-04-27 22:33
2006.05.21
Добавление обработчика события в кнопку Run-Time