AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nochmal Unterschied Pascal-Delphi

Ein Thema von ernschd · begonnen am 7. Mai 2009 · letzter Beitrag vom 7. Mai 2009
Antwort Antwort
ernschd

Registriert seit: 16. Jan 2008
166 Beiträge
 
Delphi XE8 Professional
 
#1

Nochmal Unterschied Pascal-Delphi

  Alt 7. Mai 2009, 10:41
Hi,

in meinem alten Pascal Programm passiert folgendes:
Delphi-Quellcode:
var
koZahl : double;
begin
koZahl:= 1,0534835863;
Str (koZahl:50:50,RetS);
{ RetS enthält nun den String (50 Zeichen lang):
'                              1.053483586307265800'
}
Delphi macht mal wieder was anderes:

Delphi-Quellcode:
var
koZahl: double;
begin
koZahl:= 1,0534835863;
Str (koZahl:50:50,RetS);
{ RetS enthält nun den String (50 Nachkommastellen):
'1,05348358630726576000000000000000000000000000000000'
}
Wie kommt das zustande? Und wie bekomme ich das gleiche Ergebnis in Delphi, bzw. ist das Ergebnis von Pascal überhaupt richtig?

Danke und Gruß,
Ernschd
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Nochmal Unterschied Pascal-Delphi

  Alt 7. Mai 2009, 10:45
In Delphi werden die Ländereinstellungen bzgl der Dezimal- und Tausendertrenner berücksichtigt.

Man kann diese auch im Code setzen:

Delphi-Quellcode:
DecimalDepataror := ...
ThousandSeparator := ...
In (Turbo-)Pascal könnte man den Punkt im String anschliessend mit , ersetzen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Nochmal Unterschied Pascal-Delphi

  Alt 7. Mai 2009, 10:46
Hallo,

vielleicht war beim alten Pascal-Programm
diese Software-Fliesskomma-Emulation eingeschaltet.
Delphi benutzt immer die Fliesskomma-Einheit des Prozessor ("Coprozessor").


Heiko
Heiko
  Mit Zitat antworten Zitat
ernschd

Registriert seit: 16. Jan 2008
166 Beiträge
 
Delphi XE8 Professional
 
#4

Re: Nochmal Unterschied Pascal-Delphi

  Alt 7. Mai 2009, 10:52
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.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Nochmal Unterschied Pascal-Delphi

  Alt 7. Mai 2009, 11:21
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.
Delphi Str


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz