![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Виноват делфи и виндовс.