Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Invalid floating point operation


Вик ©   (2010-04-26 17:01:00) 

Здравствуйте. Возникает указанная ошибка в следующем коде:

var
 i: Int64;  
 dbl: Double;
...
 dbl := High(Int64);
 i := Trunc(dbl); //тут выскакивает

В чем может быть дело? Может быть дело в Delphi, у меня D2009.


Leonid Troyanovsky   (2010-04-26 22:03:00) [1]


> Дмитрий Белькевич   (26.04.10 21:58) [5]

> Это был сарказм, если что.

Нет смысла оправдываться.
Сарказм :)

--
Regards, LVT.


Дмитрий Белькевич   (2010-04-26 21:58:00) [2]


> Ясенный пень, и Черчиль тож.


Это был сарказм, если что.


Leonid Troyanovsky   (2010-04-26 20:58:00) [3]


> Дмитрий Белькевич   (26.04.10 17:08) [1]

> Виноват делфи и виндовс.

Ясенный пень, и Черчиль тож.

> Вик   (26.04.10 17:44) [2]

>  соответственно когда заносим туда MaxInt64 он округляется

А испытать не судьба? Отладчик - в руки, барабан - на шею.
Кроме мантиссы есть еще экспонента, RTFM,
see also:
 dbl := High(Int64)-$FFF;

Кста, Extended forever.

> CrytoGen   (26.04.10 18:21) [3]  

> вообще Trunc вроде возвращает тип Integer

Int64. D3+, AFAIK.

--
Regards, LVT.


CrytoGen   (2010-04-26 18:21:00) [4]

вообще Trunc вроде возвращает тип Integer, соответственно в него MaxInt64 просто не помещается


Вик   (2010-04-26 17:44:00) [5]

Мне кажется дело в том, что тип Double имеет 15 цифр точности, соответственно когда заносим туда MaxInt64 он округляется в большую сторону. Полученное значение не может влезть в Int64 вот и возникает ошибка... так?


Дмитрий Белькевич   (2010-04-26 17:08:00) [6]

Виноват делфи и виндовс.


Наверх

Титульная страница Поиск, карта сайта Написать письмо