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

Вниз

Интересно почему   Найти похожие ветки 

 
Не могу понять   (2003-02-25 16:12) [0]

Объясните мне почему на такую вещь компилятор ругается

...
var
a: extended;
...

a:=10000*8*32*1048576;
...

а на такую нет

...
var
a,b: extended;
...

b:=8*32*1048576;
a:=b*10000;
....


P.S. D6,Win2000


 
Добрячок   (2003-02-25 16:20) [1]

ибо в первом случае он тут же видит переполнение или что там у тебя случается, а во втором он не знает шо Б на самом деле близка к критической массе ;)


 
Makhanev A.S. ©   (2003-02-25 16:21) [2]

[Error] Unit1.pas(30): Overflow in conversion or arithmetic operation

Переполнение в преобразовании или арифметической операции.


 
Delirium^.Tremens ©   (2003-02-25 16:28) [3]

Потому, что в первом случае компилятор видит, что число выходит за рамки типа, а во втором при компиляции все в норме: ошибка возникнет в момент выполнения.


 
han_malign ©   (2003-02-25 16:28) [4]

потому что компилятор пытается рассчитать целочисленную константу (что-бы потери точности не было) и возникает переполнение
a:=10000 .0*8*32*1048576;
- при рассчете вещественной константы все проходит на ура...


 
Danilka ©   (2003-02-25 16:31) [5]

extended-у в данном примере до переполнения ой как далеко...
просто, он пытается все число сделать сначала integer-ом, а вот для него уэто уже слишком...

вобщем, вот-так не ругается:
a:=10000.0*8*32*1048576;


 
Danilka ©   (2003-02-25 16:31) [6]

опередили :)))


 
Не могу понять   (2003-02-25 16:47) [7]

О как !

Всем спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
14-39544
AleksandrAAA
2003-02-26 14:50
2003.03.13
штрихкоды


1-39247
Beglec
2003-03-03 09:53
2003.03.13
Как заставить перегрузиться Explorer в (NT/XP/2000)?


3-39219
digester
2003-02-22 11:54
2003.03.13
Вопрос по table и dbgrid! Помогите срочно плз!!


6-39451
Владимир
2003-01-12 07:30
2003.03.13
Свой Firewall


1-39324
Иксик
2003-03-03 15:44
2003.03.13
Получить результат выполнения команды DOS