Hallo,
ich hab ein Programm in Delphi, dass die eulerische Zahl berechnet.
Nun hab ich, aus Lust und Laune, dieses Programm mal in C++ nachprogrammiert.
Da ist mir aufgefallen, dass es unterschiedliche Ergebnisse gibt.
Aber mir ist nicht klar, warum das so ist.
Hier mal die Codes und die Programme:
Delphi-Code:
Delphi-Quellcode:
procedure TMainForm.Button_startClick(Sender: TObject);
var
i: Integer;
E, F: Extended ;
begin
E := 1;
F := 1;
Edit_Ausgabe.Clear;
for i := 1 to 20 do
begin
F := F * i;
E := E + (1 / F);
Edit_Ausgabe.Text := FloatToStr(E);
Application.ProcessMessages;
Sleep(200);
end;
end;
C++-Code:
Delphi-Quellcode:
void __fastcall TMainForm::Button_startClick(TObject *Sender)
{
Edit_Ausgabe->Clear();
int i;
float E, F;
E = 1;
F = 1;
for (i=1; i<=20; i++)
{
F = F * i;
E = E + (1 / F);
Edit_Ausgabe->Text = FloatToStr(E);
Application->ProcessMessages();
Sleep(200);
}
}
Bei Delphi bekomm ich "2,71828182845905" raus, bei C++ "2,71828198432922".