Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Konvertierungsproblem (https://www.delphipraxis.net/108032-konvertierungsproblem.html)

Hermann85 6. Feb 2008 15:52


Konvertierungsproblem
 
Hallo,
ich glaub ich brauch mal einen kleinen Denkanstoß, denn irgendwie fällt mir nix mehr ein.
Ich hab einen String, den ich in einen Double verwandeln möchte. Das Problem ist nur, dass da statt einem komma ein punkt steht (z.B. 6.796400000). das problem hab ich erst mal so gelöst, dass ich die zahl vor dem punkt und die Zahl nach dem Punkt mit Copy ausschneide, dann ein Komma einfüge und dann in ein Double umwandle. sozusagen so:

Delphi-Quellcode:
 
ganzeZahl := Copy(Node,1,1);
Nachkommazahl := Copy(Node,3,8);
kompletteZahl := ganzeZahl + ',' + Nachkommazahl;
result := StrToFloat(kompletteZahl);
nun is aber das Problem, dass die Zahl vor dem Komma ja nicht unbedingt einstellig sein muss.
Vlt, kann mir ja einer sagen, wie man den Punkt noch umwandeln könnte.
danke schon mal
lg Hermann

Nuclear-Ping 6. Feb 2008 15:58

Re: Konvertierungsproblem
 
Delphi-Quellcode:
DecimalSeparator := '.';
FloatVar := StrToFloat (StringVar);
Alternativ kannst du den DecimalSeparator vorher sichern und wiederherstellen.

Hermann85 6. Feb 2008 16:11

Re: Konvertierungsproblem
 
vielen Dank...hat super funktioniert

marabu 6. Feb 2008 17:21

Re: Konvertierungsproblem
 
Hallo,

nur am Rande sei bemerkt: Für die Umwandlung von und zur Standard-Notation werden seit jeher die Pascal Routinen Val() und Str() verwendet. StrToFloat() und FloatToStr() funktionieren zwar auch, sind aber deutlich aufwendiger und eigentlich für lokalisierte Darstellungen gedacht.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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