webForumDet fria alternativet

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

.NET

4 svar · 1 515 visningar · startad av Sanji

Medlem sedan juli 2009355 inlägg
Frågan#1

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

Medlem sedan juli 2009355 inlägg
#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.

Medlem sedan juni 201161 inlägg
#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

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.

Medlem sedan feb. 200711 inlägg
#4

Oldtimer skrev:

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

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! :)

Medlem sedan juli 2009355 inlägg
#5

jag kommer starta en ny tråd där jag delvis kommer göra om detta ^^

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)