Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 13:47   #1
Ragnarek45
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 14
По умолчанию sqrt invalid floating point operation

Код:
edit9.text:=floattostr(sqrt(summax/i-1));
при попытке извлечь квадратный корень из маленьких чисел возникает эта ошбика, например 0,00025. Как это лечится, подскажет кто?
пробовал и так
Код:
sko2:extended
...
sko2:=sqrt(summax/i-1);

Последний раз редактировалось Ragnarek45; 28.01.2011 в 13:53.
Ragnarek45 вне форума Ответить с цитированием
Старый 28.01.2011, 13:52   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

походу вы пытаетесь извлечь квадратный корень из отрицательного числа.
Ну или давайте значения summax и i в студию, телепаты в оффлайне все.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.01.2011, 13:56   #3
Ragnarek45
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 14
По умолчанию

i<1 не бывает вообще. summax - это сумма (X1-Xср)^2 тоже по логике вещей в минусе не может быть. я дал пример. 0,00025
-----
мдааа...проблема очевидна))) простите за беспокойство) но интересно заметит кто?)

Последний раз редактировалось Ragnarek45; 28.01.2011 в 14:05.
Ragnarek45 вне форума Ответить с цитированием
Старый 28.01.2011, 13:59   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
вы пытаетесь извлечь квадратный корень из отрицательного числа.
+1
я практически на 100% уверен, что veniside прав!
например, в вашем случае i может быть нулевым.
i-1 = -1 - корень из -1 не может быть определён (в области действительных чисел)!


Добавлено
Цитата:
я дал пример. 0,00025
и всё таки ищите ошибку в собственном алгоритме!
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  x : extended;
begin
  x := 0.00025;
  edit9.text:=floattostr(sqrt(x));
end;

Последний раз редактировалось Serge_Bliznykov; 28.01.2011 в 14:03.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.01.2011, 14:12   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Ragnarek45 Посмотреть сообщение
мдааа...проблема очевидна))) простите за беспокойство) но интересно заметит кто?)
А че там замечать, видно же, что скобки должны быть так:

Код:
sqrt(summax/(i-1))
Видите, не все телепаты в оффлайне.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Invalid floating point operation на паскале maziLa Помощь студентам 3 26.05.2010 19:37
invalid floating point operation Mikhail91 Общие вопросы C/C++ 5 24.03.2010 00:05
Ошибка: invalid floating point operation Willow Помощь студентам 3 24.01.2010 18:42
invalid floating point operation mosq Общие вопросы Delphi 7 01.11.2009 13:28
Invalid floating point operation Skytis Помощь студентам 3 07.05.2008 12:16