11. december 2008 - 22:18
Der er
10 kommentarer og 1 løsning
Bytte om på komma og punktum i tal
Jeg har nogle tal skrevet med dansk skrivemåde, altså 1.050,52, 215,78 etc. Jeg har tallene i en String-variabel. Hvordan kan jeg få formateret dem om til Double, uden at tallet mister sin værdi? Altså 1.050,52 skulle gerne blive 1050.52 Man kunne eventuelt bruge replace, men er der ikke andre alternativer, noget med numberFormat eller lign.?
Annonceindlæg fra Deloitte
11. december 2008 - 22:22
#1
proev: NumberFormat nf = new DecimalFormat("#0.00", new DecimalFormatSymbols(new Locale("da", "dk"))); og nf.parse(dinstring)
11. december 2008 - 22:24
#2
11. december 2008 - 22:38
#3
Der er en lille forskel. Maaden i det link virker. Min kode ovenfor virker af en eller anden grund ikke.
11. december 2008 - 22:39
#4
Ah. Tusind separator skal angives i formatet. String s = "1.050,52"; NumberFormat nf1 = new DecimalFormat("#,000.00", DecimalFormatSymbols.getInstance(new Locale("da", "dk"))); System.out.println(nf1.parse(s)); NumberFormat nf2 = NumberFormat.getInstance(new Locale("da", "dk")); System.out.println(nf2.parse(s)); giver: 1050.52 1050.52
11. december 2008 - 22:59
#5
Tak begge. Hvordan kan det være at jeg ikke kan gøre følgende: Double rate = nf.parse(parts[2]);
11. december 2008 - 23:07
#6
Hvad sker der? Hvad står der i parts[2]?
11. december 2008 - 23:09
#7
Det er bare et string array hvor jeg henter værdien 1.050,52
11. december 2008 - 23:10
#8
Hvad sker der? Metoden parse afleverer et Number-objekt, så det er nok en typefejl. Prøv Double rate = nf.parse(parts[2]).doubleValue();
11. december 2008 - 23:14
#9
Okay. Der kan man se. Objektet skulle lige konveteres til double. Nu virker det. Tak. Jeg foreslår at pointene bliver delt lige mellem jer.
12. december 2008 - 03:03
#10
et svar fra mig
12. december 2008 - 08:56
#11
Ingen point til mig, tak.
Kurser inden for grundlæggende programmering