Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.12.2019, 14:07
Graduann Graduann вне форума
Прохожий
 
Регистрация: 08.12.2019
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию ... is not a valid floating point value...

Нужно написать программу через массив, вычисляющую функцию
Z= корень из (x[i]^2+1)+2*(y[i]^2+1)+(a[i]^2+1)/ число пи

На ошибки вроде не ругается, но при запуске выдает ошибку что '3.5' is not a valid floating point value, и так с любым числом в StringGrid. Числа записаны правильно, через точку. Код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
Const n=9; pi=3.14;
Var
 a,x,y:array[1..n] of real;
 i:integer;
 s1,s2,s3,z : real;
begin
 for i:=1 to n do
 a[i]:=StrToFloat(StringGrid1.Cells[i-1,0]);
 for i:=1 to n do
 x[i]:=StrToFloat(StringGrid2.Cells[i-1,0]);
 for i:=1 to N do
 y[i]:=StrToFloat(StringGrid3.Cells[i-1,0]);
 s1:=0; s2:=2; s3:=0;
 begin
 s1:=s1+(sqr(x[i])+1);
 s2:=s2*(sqr(y[i])+1);
 s3:=s3+(sqr(a[i])+1);
 end;
 z:=sqr(s1+s2+s3)/pi;
 Label1.Caption:='z='+FloatToStrF(z,ffFixed,6,2);
end;

end.
lmikle: пользуемся тегами для правильного оформления постов.

Прошу помочь в исправлении ошибки. Заранее спасибо.

Последний раз редактировалось lmikle, 08.12.2019 в 21:15.
Ответить с цитированием
  #2  
Старый 08.12.2019, 21:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

числа записаны правильно с твоей точки зрения.
а вот с точки зрения системы - видимо нет.
Попробуй конвертировать числа с помощью вот такой функции:
Код:
function StrToFloatRegSafe(S : String) : Double;
begin
  S := StringReplace(S,',',DecimalSeparator,[rfReplaceAll]);
  S := StringReplace(S,'.',DecimalSeparator,[rfReplaceAll]);
  Result := StrToFloat(S);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter