Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
ВнизInvalid floating point operation Найти похожие ветки
← →
kostyas (2007-09-14 11:49) [0]Почему происходит эта ошибка, у меня в проекте возникает такая ошибка, сделал приблизительный код, если присваивать lw1 нулевое значение, то возникает эта ошибка, любое другое число спокойно записывается, а что с этим?
TMyData = record
lw1: LongWord;
db1:Double;
db2: Double;
end;
procedure test1(var MyData: TMyData);
begin
MyData.db1 := 0;
MyData.db2 := 0;
MyData.lw1 := 0;
end;
← →
ЮЮ © (2007-09-14 11:52) [1]а вызов? Что переданщь в качестве фактического параметрв?
← →
kostyas (2007-09-14 11:54) [2]Обычный вызов.
var
MyDta: TMyData;
begin
test1(MyDta);
← →
kostyas (2007-09-14 11:58) [3]Ошибка появилась даже так:
TMyData = record
lw1: LongWord;
db1:Double;
db2: Double;
end;
procedure test1(var MyData: TMyData);
begin
MyData.db1 := 0;
MyData.db2 := 0;
end;
var
MyDta: TMyData;
begin
MyDta.lw1 := 0;
test1(MyDta);
← →
kostyas (2007-09-14 12:03) [4]Так, похоже нашел ошибку. Проблема была при делении на 0. Но почему эта ошибка означает ошибку деления на нуль?
Деление было приблизительно так:
db1 := db2 / lw1;
← →
ЮЮ © (2007-09-14 12:20) [5]> Деление было приблизительно так:
>
> db1 := db2 / lw1;
Что не наблюдаю такой строчки в кодеprocedure test1(var MyData: TMyData);
отладчик для чего дан? чтобы 20 минут искатьdb1 := db2 / lw1;
?
>Но почему эта ошибка означает ошибку деления на нуль?
Потому, что искать ошибку надо там, где она вызывает исключение, а не где светлее.
← →
DrPass © (2007-09-14 16:03) [6]
> Но почему эта ошибка означает ошибку деления на нуль?
Эта ошибка означает ошибку, произошедшую в математическом сопроцессоре. Деление вещественных чисел выполняется сопроцессором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c