Forum: VB.NET |
Thema:
AW: AW: Convert.ToDouble ignoriert den Punkt im String |
Von:
Thomas Golla (
07.08.2006 09:17) |
Hallo Paul,
ich glaube ich kann die erklären warum du dieses "Phänomen" beobachten kannst :-)
Schau dir mal folgendes an:
Dim zahl As Double
Dim strZahl As String = "1.25"
zahl = Double.Parse(strZahl)
Nun steht in zahl die 125 da in unserem Kulturkreis das Dezimaltrennzeichen das , und nicht der . ist.
Ändern wir nun zur Laufzeit unseren Kulturkreis von "de-DE" auf "en-US" und siehe da, er interpretiert den . wie wir es wollten als Dezimaltrennzeichen.
Dim c As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")
System.Threading.Thread.CurrentThread.CurrentCulture = c
System.Threading.Thread.CurrentThread.CurrentUICulture = c
zahl = Double.Parse(strZahl)
Nun steht in zahl die von uns erwartete 1.25.
@Bernhard
Wenn ich
zahl = Decimal.Parse("1.2", Globalization.NumberStyles.AllowDecimalPoint) mit "de-DE" probiere bekomme ich die Fehlermeldung "Die Eingabezeichenfolge hat das falsche Format.".
Erst mit "en-US" funktioniert es.
Habe ich da etwas was falsch gemacht bzw. etwas nicht bedacht (da es bei dir ja funktioniert)?
LG
Tom
Betreff |
Von |
Datum |
|
|
Bernhard
Grojer
|
07.08.2006 09:35 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!