Вопрос про Power в Delphi

программирование windows Delphi Borland

procedure TForm1.btn1Click(Sender: TObject);
var
x:Real;
f1,f2,f3:string;
a1,a2,a3,y1,y2,y3:real;
begin
a1:=strtofloat(edt1.text);
a2:=strtofloat(edt2.text);
a3:=strtofloat(edt3.text);
x:=-2;
while x<=1 do begin
y1:=Exp(x*a1);
y2:=Cotan(x+a2);
y3:=Power(a3,x);
f1:=FloatToStr(y1);
f2:=FloatToStr(y2);
f3:=FloatToStr(y3);

x:=x + 0.25;
end;
ShowMessage('y1='+f1+' y2='+f2+' y3='+f3);
end;

Компилируется нормально, но при нажатии кнопки btn1 выдает ошибку "Invalid Floating point operation.". При положительном а3 нет ошибки, но выдает почему-то это же число. В чем я ошибся? на ShowMessage(...) не обращайте внимание, там будет запись в массив когда я пойму массивы.

Примечание:
Выпадает на y3:=Power(a3,x);
Ответы:
А форматы проверил? возможно несовпадение форматов в системе и в дельфе - вместо десятичной точки запятая или наоборот.
И где выскакивает ошибка на
a1:=strtofloat(edt1.text);
или
f1:=FloatToStr(y1);
при каких конкретно значениях а1,а2,а3 программа падает?
Функция Power это


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.