![]() |
C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
Liste der Anhänge anzeigen (Anzahl: 2)
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:
C++-Code:
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;
Delphi-Quellcode:
Bei Delphi bekomm ich "2,71828182845905" raus, bei C++ "2,71828198432922".
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); } } |
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
Hallo Helmi,
Delphi-Quellcode:
Besser so?
var
i: Integer; // E, F: Extended ; E, F: Single; Gruß Hawkeye |
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
wird wohl an unterschiedlicher genauigkeit der gleitkomma-zahlen liegen.
|
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
Ich denk mal ein Float in C ist etwas anderes als ein extended in Delphi. Dadurch kriegst du Rundngsfehler, und das rekursive Berechnen führt dann zu einem unterschiedlichen Ergebnis.
|
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
Ist Extended in Delphi nicht das gleiche Extended wie in C++?
|
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
In sysmac.h steht:
Code:
Klärt das deine Fragen?
typedef long double Extended; // 10 byte real
typedef float Single; // 4 byte real typedef double Double; // 8 byte real (Btw, der C-Syntaxhighlighter sollte case-sensitive sein...) |
Re: C++/Delphi: gleiche Berechnung, aber diff. Ergebnisse
danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz