Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизInvalid floating point operation Найти похожие ветки
← →
Вик (2010-04-26 17:01) [0]Здравствуйте. Возникает указанная ошибка в следующем коде:
var
i: Int64;
dbl: Double;
...
dbl := High(Int64);
i := Trunc(dbl); //тут выскакивает
В чем может быть дело? Может быть дело в Delphi, у меня D2009.
← →
Дмитрий Белькевич (2010-04-26 17:08) [1]Виноват делфи и виндовс.
← →
Вик (2010-04-26 17:44) [2]Мне кажется дело в том, что тип Double имеет 15 цифр точности, соответственно когда заносим туда MaxInt64 он округляется в большую сторону. Полученное значение не может влезть в Int64 вот и возникает ошибка... так?
← →
CrytoGen (2010-04-26 18:21) [3]вообще Trunc вроде возвращает тип Integer, соответственно в него MaxInt64 просто не помещается
← →
Leonid Troyanovsky © (2010-04-26 20:58) [4]
> Дмитрий Белькевич (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.
← →
Дмитрий Белькевич (2010-04-26 21:58) [5]
> Ясенный пень, и Черчиль тож.
Это был сарказм, если что.
← →
Leonid Troyanovsky © (2010-04-26 22:03) [6]
> Дмитрий Белькевич (26.04.10 21:58) [5]
> Это был сарказм, если что.
Нет смысла оправдываться.
Сарказм :)
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.065 c