![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Sqrt непашет [D7, WinXP]
daron © (2007-01-15 18:57:00)c:=Sqrt(0.05647474);
c:=Sqrt(SQR(Bx-Xc)+SQR(By-Yc));
обе строки возвращают с=0. я перепробовал уже все виды типов с плавающей точкой - пипец. в чем маза не понимаю.
По контрол+ф7 в режиме отладки выражение Sqrt(0.05647474)возвращаяет нормальное значение. Нифига не пойму почему оно не присваивается.
PZ (2007-01-16 08:11:00) [1]Вот такой пример: результаты получаются нормальные
Const
Bx = 1.234;
Xc = 1.716;
By = 3.909;
Yc = 3.222;
procedure TForm1.Button1Click(Sender: TObject);
Var
C : Real;
begin
c := Sqrt(0.05647474);
ShowMessage(FormatFloat('0.0000', C)); // 0,2376
c := Sqrt(SQR(Bx-Xc)+SQR(By-Yc));
ShowMessage(FormatFloat('0.0000', C)); // 0,8392
end;
tesseract (2007-01-15 21:54:00) [2]
> Нифига не пойму почему оно не присваивается.
Оптимизация может быть? Далее в области видимости "с" используется?
Kolan (2007-01-15 21:23:00) [3]Дело не в Sqrt. Ище в другом месте.
Джо (2007-01-15 20:15:00) [4]> Может быть c : integer; (?)
Не скомпилируется.
PZ (2007-01-15 19:49:00) [5]Может быть c : integer; (?)
Джо (2007-01-15 18:58:00) [6]Ты как его (значение) выводишь-то?