Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Помогите с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.037 c
2-1129313241
картограф
2005-10-14 22:07
2005.11.13
StringGrid


1-1130226491
Horovodov
2005-10-25 11:48
2005.11.13
Работа с командной строкой


3-1128066893
kostet
2005-09-30 11:54
2005.11.13
Хранимая процедура


5-1109742825
Аюс
2005-03-02 08:53
2005.11.13
FreeNotification(Self) принцип работы ?


9-1118589678
OSokin
2005-06-12 19:21
2005.11.13
Посмотрите, плиз...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский