Meddelande

Minska
No announcement yet.

konvertera en sträng hämtad från xml till double

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • konvertera en sträng hämtad från xml till double

    hej! jag försöker konvertera en sträng som får olika värden dynamiskt, till double. värdet kan vara allt ifrån 0.00001 till 100.000000, och när konverteringen ska ske så klagar visual studio på att detta inte är rätt format. Datan hämtas från ett xml-dokument(http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml) som innehåller valutakurser.

    denna rad felar:
    "tempcurrency.rate = Convert.ToDouble(rate);"

    tempcurrency.rate är av typen double, och variabeln rate är av typen string. då jag använt mig av breakpoints så säger visual studio att rate har värdet "1.4402", men converten fungerar inte ändå.

    hur ska converten se ut egentligen, och hur måste strängen som ska konverteras se ut?

    jag har googlat på detta men hittar ingen med mitt problem.

    Mvh Marcus
    Last edited by Sanji; 2011-08-31, 15:36.
    "Det var som att sitta och programmera i en skål med gröt där varje gryn var en rad med kod"

  • #2
    jag hittade felet! det var inte så svårt... problemet låg i att en punkt användes istället för komma, jag körde en string.replace(".",",");
    på variabeln så fungerade det.
    "Det var som att sitta och programmera i en skål med gröt där varje gryn var en rad med kod"

    Kommentera


    • #3
      Ett litet tips:
      Alltid när du konverterar till/från sträng, tänk igenom vilken formatstandard du vill använda och ange det vid konverteringen!

      I ditt fall är kanske
      Kod:
      Convert.ToDouble(rate, CultureInfo.InvariantCulture)
      det rätta. Men det viktiga är att du alltid tar kontroll över hur värdet representeras i strängen.

      Kommentera


      • #4
        Oldtimer skrev: Visa inlägg
        Ett litet tips:
        Alltid när du konverterar till/från sträng, tänk igenom vilken formatstandard du vill använda och ange det vid konverteringen!

        I ditt fall är kanske
        Kod:
        Convert.ToDouble(rate, CultureInfo.InvariantCulture)
        det rätta. Men det viktiga är att du alltid tar kontroll över hur värdet representeras i strängen.
        Bara som tillägg till det Oldtimer skriver: En till anledning till att man alltid ska specificera formatstandarden är att programmet annars blir beroende av vilken formatstandard användarsessionen har där applikationen körs. Kör man alltså en applikation som använder string.replace(".",","); för att komma runt problemet, då kommer den att haverera på t ex en dator som kör engelskt format. Jag har sett allt för många program med det här problemet, så snälla alla, tänk på detta!
        Olof Lagerkvist
        LTR Data
        http://www.ltr-data.se

        Kommentera


        • #5
          jag kommer starta en ny tråd där jag delvis kommer göra om detta ^^
          "Det var som att sitta och programmera i en skål med gröt där varje gryn var en rad med kod"

          Kommentera

          Working...
          X