# String in double parsen



## padde479 (17. Apr 2007)

Hallo Forum,

ich traue mich kaum zu fragen, aber wie wandle ich einen String in ein double-Wert um? Der String sieht z.B. so aus: 123,456. Das Trennzeichen ist also ein ',', kein '.'. Wenn ich das dann wie folgt mache, bekomme ich immer eine Exception geworfen:


```
String number = "123,456";
double parse = Double.parseDouble(number);
```

Die Exception sagt dann Folgendes:



> java.lang.NumberFormatException: For input string: "123,456"
> ...



Bin ich zu blöd? Ich kann doch nicht erst alle ',' durch '.' ersetzen und dann parsen.

Gruß
Padde


----------



## Marcel_Handball (17. Apr 2007)

So sollte es funktionieren:


```
String number = "123,456";
Scanner scanner = new Scanner(number).useLocale(Locale.GERMAN);
double parse = scanner.nextDouble();
```


----------



## padde479 (17. Apr 2007)

Und wie funktioniert es, wenn ich unter Java 1.4 entwickle?


----------



## Wildcard (17. Apr 2007)

http://java.sun.com/j2se/1.4.2/docs/api/java/text/NumberFormat.html


----------



## L-ectron-X (17. Apr 2007)

Oder in einer einzigen Zeile einfach

```
double d = Double.parseDouble(number.replace(',', '.'));
```


----------



## padde479 (17. Apr 2007)

Okay, hab's wie folgt gelöst:


```
String number = "123,456";
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
Number n = format.parse(number);
double x = n.doubleValue();
```

Ist zwar von hinten durch's Knie in die Brust geschossen, aber zumindest bin funktioniert es einwandfrei.

Ich danke euch allen.

Gruß
Padde


----------



## Wildcard (17. Apr 2007)

padde479 hat gesagt.:
			
		

> Ist zwar von hinten durch's Knie in die Brust geschossen, aber zumindest bin funktioniert es einwandfrei.


Warum? Das ist völlig ok.


----------

