![]() |
Nochmal Unterschied Pascal-Delphi
Hi,
in meinem alten Pascal Programm passiert folgendes:
Delphi-Quellcode:
Delphi macht mal wieder was anderes:
var
koZahl : double; begin koZahl:= 1,0534835863; Str (koZahl:50:50,RetS); { RetS enthält nun den String (50 Zeichen lang): ' 1.053483586307265800' }
Delphi-Quellcode:
Wie kommt das zustande? Und wie bekomme ich das gleiche Ergebnis in Delphi, bzw. ist das Ergebnis von Pascal überhaupt richtig?
var
koZahl: double; begin koZahl:= 1,0534835863; Str (koZahl:50:50,RetS); { RetS enthält nun den String (50 Nachkommastellen): '1,05348358630726576000000000000000000000000000000000' } Danke und Gruß, Ernschd |
Re: Nochmal Unterschied Pascal-Delphi
In Delphi werden die Ländereinstellungen bzgl der Dezimal- und Tausendertrenner berücksichtigt.
Man kann diese auch im Code setzen:
Delphi-Quellcode:
In (Turbo-)Pascal könnte man den Punkt im String anschliessend mit , ersetzen.
DecimalDepataror := ...
ThousandSeparator := ... |
Re: Nochmal Unterschied Pascal-Delphi
Hallo,
vielleicht war beim alten Pascal-Programm diese Software-Fliesskomma-Emulation eingeschaltet. Delphi benutzt immer die Fliesskomma-Einheit des Prozessor ("Coprozessor"). Heiko |
Re: Nochmal Unterschied Pascal-Delphi
Aso,
der Punkt wird auf jeden Fall später durch ein Komma ersetzt, das ist nicht das Problem. Der Compilermodus in Pascal ist auf {$N+} gesetzt, also keine Software-Fliesskomma-Emulation. |
Re: Nochmal Unterschied Pascal-Delphi
Hallo,
um noch mal auf die Grundfrage zu kommen. Ich denke, das Pascal-Str war falsch. Str (koZahl:50:50,RetS); Die erste 50 steht für die String-Länge, die zweite 50 für die Anzahl der Dezimalstellen. Davon abgesehen, zweimal 50 eh Quatsch sind (es können maximal 48 sein, wegen der Vorkommazahl und dem Kommazeichen) war in der alten Pascal-Implementierung wohl sowas drin wie wenn gewünschte Dezimal-Stellen nicht gehen, fülle links mit Leerzeichen auf. in Delphi heisst es dann wohl wenn gewünschte Dezimal-Stellen nicht gehen, ergänze 0, bis Width erreicht ist. Ein besserer Link als die Hilfe dazu. ![]() Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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