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

Вниз

Помогите с Invalid floating point operation!!   Найти похожие ветки 

 
Smarty   (2005-10-23 14:59) [0]

Народ!
Подскажите плиз что я делаю не так?
имеем переменные:
MaxRowId:integer;
r:double;
При попытке выполнить: r:=MaxRowId/2 выскакивает ошибка "Invalid floating point operation". Что я делаю не так?
причем если перед этим вычислением постваить ShowMessage(MaxRowId) все работает.


 
Loginov Dmitry ©   (2005-10-23 17:04) [1]

Ведь ясно же написано: "Invalid floating point operation". Сделай соответствующие выводы.


 
Юрий Зотов ©   (2005-10-23 17:30) [2]


procedure TForm1.FormCreate(Sender: TObject);
var
  MaxRowId: integer;
  R: double;
begin
  MaxRowId := Handle;
  R := MaxRowId / 2;
  ShowMessage(FloatToStr(R))
end;

И все работает. Значит, ответ на вопрос "Что я делаю не так?" нужно искать в другом месте кода.


 
Smarty   (2005-10-23 18:14) [3]

:) я тоже был учень удивлен такому повороту событий, однако в MaxRowId всегда находилось нормальное ненулевое значение, да и к простому делению на 2 особо не придерешься. Может Delphi глюканул? В любом случае всем спасибо! А я обошелся без этого деления :)


 
han_malign ©   (2005-10-24 12:11) [4]

Были такие приколы, WinAPI в некоторых местах(чаще в вызовах kernel32) изменяет флаги сопроцессора - Delphi где может это фиксит(SafeLoadLibrary например), но в основном полагается на эксклюзивное владение сопроцессором(и глобально неизменное состояние), что иногда приводит к некоректной работе System._FSafeDivide.
Спасает asm FINIT end; перед делением...

З.Ы. Глюк идет еще со времен BP7.0/D1 под DPMI.


 
han_malign ©   (2005-10-24 12:13) [5]

З.З.Ы. Причем глюк всегда именно при делении целых с приведением к плаващей точке...


 
umbra ©   (2005-10-24 12:16) [6]


> Invalid floating point operation

А у меня такое часто случалось на D7, когда с датами работал и брейкпойнты в процедурах обработки дат ставил. Ставишь точку прерывания - получаешь исключение, убираешь - все работате как часы.



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

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

Наверх




Память: 0.48 MB
Время: 0.192 c
10-1106831444
Inco
2005-01-27 16:10
2005.11.13
Maссивы в IDL


4-1126266591
MF
2005-09-09 15:49
2005.11.13
Да уж... :(


3-1127822146
VitGun
2005-09-27 15:55
2005.11.13
База Paradox и DOS-приложение


9-1120113497
_Max
2005-06-30 10:38
2005.11.13
хранение данных


4-1126704429
NikNet
2005-09-14 17:27
2005.11.13
Узнать куда путь куда обращ. Explorer?