DecimalFormat mit BigDecimal?

Hackepeter

Aktives Mitglied
Hallo,

in meiner Anwendung arbeite ich mit sehr großen Zahlen, weshalb ich mit BigDecimal arbeite. Nun möchte ich die Zahlen ausgeben und zwar formatiert.

DecimalFormat format = new DecimalFormat("0.00");

Das funktioniert nur mit Objekten die von der Klasse Number abgeleitet sind, also nicht mit meinem String. Für normale Datentypen sind die Zahlen zu groß, ich bin also auf BigDecimal angewiesen. Hat jemand eine Idee, wie ich so ein Objekt formatiert ausgeben kann?

Am besten mit 1000er-Trennzeichen und einem Komma, statt einem Punkt für die Nachkommastellen.

Danke im Voraus!
 
S

SlaterB

Gast
> also nicht mit meinem String. Für normale Datentypen sind die Zahlen zu groß, ich bin also auf BigDecimal angewiesen.

ja wie nun, hast du String oder bereits BigDecimal? ungenau beschrieben,

a) wenn du BigDecimal hast dann mit DecimalFormat in einen String und fertig, mit deutscher Locale sieht es auch schick aus
b) wenn du einen String hast und dieser noch nicht ok ist, dann in der Tat auf BigDecimal/ Number wechseln und bei a) weiter,

für dieses 'Wechseln' mglw. auch wieder DecimalFormat, die parse-Methode gibt eine Number zurück,
hängt natürlich von deinen bisherigen Format ab, ob es geht oder nicht

edit:
übrigens vielleicht vorher selber runden,
bei mir kommt bei
Java:
BigDecimal a = new BigDecimal("23.345");
System.out.println(new DecimalFormat("0.00").format(a));
23,34 raus.., vielleicht aber in neueren Java-Versionen nicht mehr so schlimm
 
Zuletzt bearbeitet von einem Moderator:

haui95

Bekanntes Mitglied
Und dann noch mit Komma folgendes schreiben:

Java:
BigDecimal bd = new BigDecimal("23.345");
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();
dfs.setDecimalSeparator(',');
DecimalFormat df = new DecimalFormat("0.00", dfs);
String formatOutput = df.format(bd)

Edit:

Java:
BigDecimal bd = new BigDecimal("23.345");
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();
dfs.setGroupingSeparator(',');

DecimalFormat df = new DecimalFormat("###,###.##", dfs);
String formatOutput = df.format(bd.longValue()));

MfG
 
Zuletzt bearbeitet:

Hackepeter

Aktives Mitglied
Wow, dankeschön, das hat funktioniert! Oh man, irgendwie habe ich nicht gedacht, dass BigDecimal von Number erbt, obwohl es natürlich Sinn macht. Wie bescheuert... Dankeschön!
 
S

Spacerat

Gast
edit:
übrigens vielleicht vorher selber runden,
bei mir kommt bei
Java:
BigDecimal a = new BigDecimal("23.345");
System.out.println(new DecimalFormat("0.00").format(a));
23,34 raus.., vielleicht aber in neueren Java-Versionen nicht mehr so schlimm
Das ist so und bleibt so, DecimalFormat verwendet RoundingMode.HALF_EVEN per default. ;)
"per default" heisst aber, das man's eintellen kann, z.B. auf RoundingMode.HALF_UP. Zumindest braucht man vorher nicht selber runden, das wär ja auch was. Wozu würde man denn DecimalFormat sonst noch benötigen? So'n paar lächerliche Trennzeichen bekäme man nach dem expliziten Runden auch noch selber hin.
 
S

SlaterB

Gast
ach ja, eigentlich logisch wie überall, da setzt aber irgendwie mein Verstand aus bei all den Einstellmöglichkeiten,
zumal abweichend von Math.round() usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
P DecimalFormat Java Basics - Anfänger-Themen 5
A DecimalFormat und wissenschatliche (Potenz-)Schreibweise Java Basics - Anfänger-Themen 6
V Tausender Trennzeichen DecimalFormat & NumberFormat Java Basics - Anfänger-Themen 8
N Methoden Decimalformat variabel einstellen Java Basics - Anfänger-Themen 18
L DecimalFormat InputStringException Java Basics - Anfänger-Themen 5
H DecimalFormat Java Basics - Anfänger-Themen 6
C DecimalFormat-Patern funktioniert ab 11 Stellen nicht mehr Java Basics - Anfänger-Themen 3
D Datentypen Double 2 stellen hinter dem Komma ausgeben OHNE decimalformat Java Basics - Anfänger-Themen 2
L DecimalFormat - wo ansetzen? Java Basics - Anfänger-Themen 4
S DecimalFormat deutsche Trennzeichen. Java Basics - Anfänger-Themen 4
R Decimalformat mit Aufzählung von 1 bis 100 Java Basics - Anfänger-Themen 2
I kleines problemchen bei DecimalFormat Java Basics - Anfänger-Themen 6
G Problem mit DecimalFormat Java Basics - Anfänger-Themen 3
D komme heute mit dem DecimalFormat nicht klar... Java Basics - Anfänger-Themen 2
J String Formatieren DecimalFormat oder wie? Java Basics - Anfänger-Themen 4
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
I BigDecimal und Berechnungen weiterhin mit + / - usw. Java Basics - Anfänger-Themen 11
B TableView: laufender Saldo mit BigDecimal? Java Basics - Anfänger-Themen 6
I BigDecimal als Parameter verwenden Java Basics - Anfänger-Themen 3
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
A Kaufmännisches Runden mit BigDecimal Java Basics - Anfänger-Themen 14
G Compiler-Fehler BigDecimal Java Basics - Anfänger-Themen 5
AssELAss Datentypen BigDecimal Vergleichen ob Ergebnis >= 200 Java Basics - Anfänger-Themen 5
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
I BigDecimal < 0 Java Basics - Anfänger-Themen 12
E BigDecimal PQ Formel Java Basics - Anfänger-Themen 16
K Wurzelberechnung Newton BigDecimal Java Basics - Anfänger-Themen 2
W BigDecimal bei Rechnungen Java Basics - Anfänger-Themen 5
neurox BigDecimal setScale wird ignoriert Java Basics - Anfänger-Themen 2
N max(BigDecimal,BigDecimal) Java Basics - Anfänger-Themen 2
P Mit double und BigDecimal rechnen Java Basics - Anfänger-Themen 6
M JTable Spalte ist bigDecimal Java Basics - Anfänger-Themen 2
G BigDecimal -- exception Java Basics - Anfänger-Themen 3
G BigDecimal mit zwei Nachkommastellen darstellen Java Basics - Anfänger-Themen 2
H integer 2 bigdecimal ? Java Basics - Anfänger-Themen 2
A Problem mit BigDecimal? Java Basics - Anfänger-Themen 3
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
B BigDecimal Java Basics - Anfänger-Themen 6
B String to BigDecimal Java Basics - Anfänger-Themen 3
T Wissenschaftliche Notationen + BigDecimal Java Basics - Anfänger-Themen 5
T zwei BigDecimal vergleichen Java Basics - Anfänger-Themen 2
B Frage zu BigDecimal! dringend Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben