Double Werte vollständig anzeigen

moemaster

Erfahrenes Mitglied
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
 
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ß
 
Hi,

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

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

Gruß
joschi
 
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)
 
Zuletzt bearbeitet:
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:
Code:
        NumberFormat n = NumberFormat.getInstance();
        n.setMaximumFractionDigits(2);
        n.setMinimumFractionDigits(2);

[...]

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

Neue Beiträge

Zurück