Laden...

XML-String nach Double konvertieren

Erstellt von hm_hm vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.522 Views
H
hm_hm Themenstarter:in
6 Beiträge seit 2006
vor 17 Jahren
XML-String nach Double konvertieren

Hallo,

ich lese mit :


 xmldoc.Load(@"ccd.xml");
            // Erzeugen eines XmlElements
            XmlElement obRoot = xmldoc.DocumentElement;
            foreach(XmlNode obXMLNode in obRoot.ChildNodes)
            { 
                double owidth  = Convert.ToDouble(obXMLNode.SelectSingleNode("width").InnerText);


folgende XML-Elemente ein:

<CCD>
<width>4.9</width>
<height>3.7</height>
<text>1/3" (4.9 x 3.7mm)</text>
</CCD>

Problem: in owidth steht 49.0 statt 4.9?? Auch wenn ich in XML Datei 4,9 schreibe!

Danke für Eure Hilfe!

Daniel

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo hm_hm,

ich kann mir eigentlich nicht vorstellen, dass sowohl mit "4.9" also auch mit "4,9" bei Convert.ToDouble 49 rauskommt. In einem von beiden Fällen, ist das nachvollziehbar. Die Lösung ist die richtigen Einstellungen für Dezimal- und Tausendertrenner zu verwenden:

Convert.ToDouble-Methode (String, IFormatProvider)

herbivore

H
hm_hm Themenstarter:in
6 Beiträge seit 2006
vor 17 Jahren
Hast Recht...

Hallo herbivore,

..., wenn im XML-File 4,9 steht gehts, ich hatte im falschen XML-File nacheditiert!
Danke! Wenn ich Dich schon mal dranhabe, wie handelt man denn externe Files in einem VS2005-Projekt?
Ich hab das XML manuell in den bin-Ordner kopiert, und mit LOAD(@"ccd.xml") geladen, was zum testen geht, aber sicher nicht der richtige weg ist.
XML-File und z.B. Bilder für Pic-Boxen unter Projekt/Ressorcen und dann wie weiter?
Sorry bin Anfänger!

Danke Daniel

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo hm_hm,

..., wenn im XML-File 4,9 steht gehts, ich hatte im falschen XML-File nacheditiert!

Wenn du nicht die invariante Culture verwendest, dann geht es aber nur auf Rechnern, auf denen Komma als Dezimaltrenner eingestellt ist.

Zu der anderen Frage. Bitte keine komplett neu Frage in einem Thread zu einem bestimmten Thema. Bitte mach einen neuen Thread in Infrastruktur auf. Ich kann sie Frage aber so oder so nicht beantworten, weil ich kein VS benutze.

herbivore

V
52 Beiträge seit 2006
vor 17 Jahren

Ich weiß jetz nich gant was du meinst, aber es gibt allgemein 2 Möglichkeiten:

  1. Die Datei soll auf der Festplatte gespeichert werden
    So hattest du es ja. Vorteil is eben das auch andere Programme Zugriff haben.

  2. Eine Ressourcendatei
    Damit wird deine Datei mit in die exe (oder was auch immer) kompiliert. Damit hat man zumindest nich so einfach zugriff ^^