German String formatiert umwandeln in Double

kaplanerkan

Member
Licensed User
Longtime User
Hallo,

ich habe eine XML-Datei und sieht so aus:

B4X:
<row>
    <Menue>197</Menue>
    <Text_D>TULLAMQRE DEW COLA</Text_D>
    <Text_C>TULLAMQRE DEW COLA</Text_C>
    <Preis3>3,5</Preis3>
</row>
<row>
    <Menue>198</Menue>
    <Text_D>KUEMMERLING COLA</Text_D>
    <Text_C>KÜMMERLING COLA</Text_C>
    <Preis3>3,5</Preis3>
</row>

Obige XML-Datei wird vom MySQL exportiert.
Als Client habe ich noch andere WindowsCE Geräte, sie lesen die Preise ohne Probleme.

Für die Android-Geräte habe ich Variables für Preise so definiert:

B4X:
   'XML Definations
   Dim XMLparser As SaxParser
   Dim MenuNr, TextD, TextC As String
   Dim MenuPreis As String   'Double kann ich definieren, sonst meckert.

Mein Parser sieht so aus:
B4X:
Sub Parser_EndElement (Uri As String, Name As String, Text As StringBuilder)
   If XMLparser.Parents.IndexOf("row") > -1 Then
   
      If MenuNr = nummerbox.Text Then
                  MenuGefunden = True
         Return
        End If

      If Name = "Text_D" Then
         TextD = Text.ToString
            'Msgbox (TextD, "TextD")
            Else If Name = "Text_C" Then
               TextC = Text.ToString
               Else If Name = "Preis3" Then
                  MenuPreis = Text.ToString
                  Else If Name = "Menue" Then
                     MenuNr = Text.ToString
                        If MenuNr = nummerbox.Text Then
                           MenuGefunden = True
                           Return
                        End If
            
         End If
      End If                        
End Sub

Mein Problem ist; ich kann momentan die Preise nur als STRING lesen, wie kann ich später dieses String in Double umwandeln, damit ich später summieren kann?

zb, angenommen "Preis3" = 3,1 möchte ihn formatiert umwandeln in "3,10". Ich weiss es ist einfache Sache aber unter B4A komme ich nicht mehr weiter.


Danke im Voraus für jede Idee oder Source.

Gruss
kaplaN
 

klaus

Expert
Licensed User
Longtime User
Versuche folgenden Code:
B4X:
Dim strMenuPreis As String
Dim MenuPreis As Double
.
.
strMenuPreis = Text.ToString
strMenuPreis = strMenuPreis.Replace(",", ".")
MenuPreis = strMenuPreis
Um rechnen zu können musst Du auch noch das Komma duch einen Punkt ersetzen was mit strMenuPreis = strMenuPreis.Replace(",", ".") gemacht wird.
Man kann eine Double Variable nicht formattieren, man kann sie nur zur Anzeige wieder als String zurückformattieren mit NumberFormat oder NumberFormat2.

Beste Grüsse.
 
Top