Punkt/Komma beim Parsen von Strings zu Double

16/05/2008 - 11:13 von Jens Müller | Report spam
Hallo,

ich lese aus einer Datei eine Fließkommazahl aus, die einen . als
Dezimaltrennzeichen benutzt.

In deutschen Umgebungen erzeugt aber CDbl("123.45") = 12345.

Was wàre der richtige Weg richtig parsen zu lassen?
If CDbl("1.7") = 17 Then Eingabestring = Replace(Eingabestring, ".", ",")
ist quick & dirty.

Danke,
Jens
 

Lesen sie die antworten

#1 Christian Zimmermann
16/05/2008 - 11:56 | Warnen spam
Hallo Jens,

Jens Müller schrieb:

ich lese aus einer Datei eine Fließkommazahl aus, die einen . als
Dezimaltrennzeichen benutzt.

In deutschen Umgebungen erzeugt aber CDbl("123.45") = 12345.

Was wàre der richtige Weg richtig parsen zu lassen?
If CDbl("1.7") = 17 Then Eingabestring = Replace(Eingabestring, ".",
",") ist quick & dirty.



Wenn du dich auf den Punkt als Dezimaltrenner verlassen kannst, dann
nimm einfach Val("123.45"). Die Cxxx() Konvertierungen sind immer
abhàngig von den Systemeinstellungen (beachte: evt. Quellsystem <>
Zielsystem). Ebenso solltest du als Strings zu speichernde numerische
Werte mit Str() konvertieren, um immer den Punkt als Dezimaltrenner zu
bekommen. Das vereinfacht die Konvertierung. Ansonsten muss das
verwendete Dezimaltrennzeichen als gesonderte Information mitgegeben
werden oder es ist dasjenige Zeichen, welches ungleich einer Ziffer ist
und es wird vorausgesetzt, dass kein Tausendertrennzeichen im String steht.

Das systemeinstellungsunabhàgige Duo heißt also: Val() und Str()

Gruß

Christian

Ähnliche fragen