AW: Format Nachkommastellen
Ja, in der Schweiz habt ihr den Punkt als Dezimaltrennzeichen, in Deutschland und Österreich z.B. aber das Komma.
D.h. wenn du "10.25" bei Schweizer Regionaleinstellung mit Double.Parse umwandelst, dann bekommst du den Wert 10.25. Stellst du das Gerät auf Österreich und gibst "10.25" ein, dann wird der . als Tausendertrennzeichen behandelt und du hast den Wert 10250. Das hängt einfach damit zusammen wie die Leute in den Ländern Zahlen wohl eingeben werden.
Du kannst beim Parse aber eine Culture mitgeben, die du benutzen willst. Das überschreibt die Automatik und er nimmt dann immer die dort üblichen Zahlenformate an. Schätze mal das ist dein Problem.
Ansonsten wäre es gut wenn du deinen Code posten könntest, der zu dem falschen Verhalten führt.
AW: Format Nachkommastellen
Danke für deine Antwort. Nachfolgend mein Code, der so nciht funktioniert. Problem ist nur das Ergebnis.
Code:
Dim xelement As XElement = xelement.Parse(e.Result, LoadOptions.None)
Dim codes As IEnumerable(Of String) = _
From code In xelement.Elements("result") _
Let zip = CStr(code.Element("elevation"))
Select zip
For Each zp As String In codes
lstResultat.Items.Add(zp)
Dim k As Double = CDbl(zp) * (3.2808399)
lstResultat.Items.Add(Double.Parse(k, New System.Globalization.CultureInfo("de-CH")))
Exit For
Next zp
AW: Format Nachkommastellen
Du wandelst ja mit CDbl schon zp in einen Double-Variant um => dort passiert der Fehler (siehe auch http://msdn.microsoft.com/en-us/libr...=vs.84%29.aspx). Bei Double.Parse wird dann von Double in String gewandelt und dann geparst.
Bin leider aus dem C# Bereich und insofern in VB nicht recht bewandert aber wenn du es so schreibst sollte es passen:
Code:
Dim k As Double = Double.Parse(zp, New System.Globalization.CultureInfo("de-CH"));
k = k * 3.2808399
lstResultat.Items.Add(k);