# Double Werte vollständig anzeigen



## moemaster (23. Juli 2009)

Hallo,
ich lese Geldbeträge aus einer Website aus und zeige sie in einem JLabel an, das funktioniert auch schon ganz gut, nur leider zeigt er bei beispielsweise 20500,90 € bloß 20500,9 € an. Mathematisch gesehen hat Java damit ja auch vollkommen Recht, bloß es sieht bescheiden aus. Deshalb die Frage: Wie bringe ich ihn dazu, dass er die, eigentlich sinnlose, 0 trotzdem mitschreibt?
Danke für Hilfe
Beste Grüße,
Moritz


----------



## Gast (23. Juli 2009)

Hi,

mit was gibts du deinen Geldbetrag aus? Versuch es doch mal mit 
double x = 0;
x = 20500.9;
System.out.printf("Geldbetrag: %1$.2f€ %n", x);

Gruß


----------



## joschi70 (23. Juli 2009)

Hi,

wenn Du da ganze als String brauchst kannst du das so machen:


```
double d = 20500.90;
String s = String.format("%.2f", d);
```

Gruß
joschi


----------



## Anime-Otaku (24. Juli 2009)

Man sollte aber nicht vergessen, dass double und float ungenaue Werte liefern kann. Dadurch das es als Gleitkommazahl gespeichert wird.

siehe dazu http://openbook.galileocomputing.de...05_002.htm#mja1ace634adaa1351d32a132ccf27fc1b

Als Ersatz kann man entweder mit Centbeträgen arbeiten und nur für die Ein-/Ausgabe eine Dezimalzahl anzuzeigen.
Oder man rechnet mit dem genauen BigDecimal (welches aber mehr Overhead bedeutet)


----------



## moemaster (1. September 2009)

Ein bisschen spät, aber das Problem ließ sich deuch eure Vorschläge leider nicht lösen. Trotzdem danke Ich habe jetzt eine andere Lösung gefunden - für alle die evtl. mal vor dem selben Problem stehen:

```
NumberFormat n = NumberFormat.getInstance();
        n.setMaximumFractionDigits(2);
        n.setMinimumFractionDigits(2);

[...]

label.setText("Geldbetrag: "+n.format(zahl);
```


----------

