Einzelnen Beitrag anzeigen

St0rmhunter

Registriert seit: 20. Aug 2011
24 Beiträge
 
#1

"invalid floating point operation" finde den Fehler nicht

  Alt 2. Nov 2011, 13:43
Delphi-Version: 7
Ich habe ein seltsames Problem, wie der Titel schon sagt beim Klicken auf den Button2 kommt immer die Fehlermeldung "Invalid floating point operation".
Meine Variablen:
Delphi-Quellcode:
var
  Form1: TForm1;
  i,j: Integer;
  Bst,b: Extended;

Das hier ist der Quellcode zu Button2:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  memo2.text:='';
  for i:=1 to length(memo1.text) do
  begin
    Bst:=strtofloat(memo1.text[i]+memo1.text[i+1]+memo1.text[i+2]);
    b:=Bst;
    for j:=2 to strtoint(edit3.text) do
    begin
      Bst:=Bst*b;
    end;
    Bst:=Bst - (Trunc(Bst / strtoint(edit2.text)) * strtoint(edit2.text));
    memo2.text:=memo2.text + chr(strtoint(floattostr(Bst)));
  end;
end;
Der Fehler scheint in dieser Zeile zu sein,Bst:=Bst - (Trunc(Bst / strtoint(edit2.text)) * strtoint(edit2.text)); denn ohne sie läuft das Programm ohne Fehlermeldung.

Jedoch das seltsame ist die ZeileBst:=Bst - (Trunc(Bst / strtoint(edit2.text)) * strtoint(edit2.text)); habe ich auch bei Button1 verwendet, jedoch kommt da keine Fehlermeldung

Quellcode Button1:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  memo2.text:='';
  for i:=1 to length(memo1.text) do
  begin
    Bst:=ord(memo1.text[i]);
    b:=Bst;
    for j:=2 to strtoint(edit1.text) do
    begin
      Bst:=Bst*b;
    end;
    Bst:=Bst - (Trunc(Bst / strtoint(edit2.text)) * strtoint(edit2.text));
    if Bst <100 then
    begin
      if Bst < 10 then
      begin
        memo2.text:=memo2.text + '00' + floattostr(Bst);
      end
      else
      begin
        memo2.text:=memo2.text + '0' + floattostr(Bst);
      end;
    end
    else
    begin
    memo2.text:=memo2.text + floattostr(Bst);
    end;
  end;
end;
Ich hoffe ihr könnt mir weiterhelfen. Deshalb schonmal danke im voraus

Euer St0rmhunter
  Mit Zitat antworten Zitat