# BigDecimal mit zwei Nachkommastellen darstellen



## Gast (18. Feb 2008)

Mahlzeit  
Habe eine Frage zu BigDecimal. Ich rechne mit BigDecimal und mein Ergebnis wird mit ewig vielen Nachkommastellen dargestellt. Ich hätte aber gerne nur zwei Nachkommastellen. Kann man das irgendwie festsetzen? Habe es mit .setScale(2) probiert aber scheinbar nicht richtig denn es kam zu einem Fehler


----------



## SlaterB (18. Feb 2008)

scheinbar hast du vergessen, diesen Fehler hier zu nennen,

wenn es dir nur um die Ausgabe geht, und du die Zahl belassen willst:
siehe NumberFormat/ DecimalFormat


----------



## JavaFred (18. Feb 2008)

Gast hat gesagt.:
			
		

> Ich rechne mit BigDecimal und mein Ergebnis wird mit ewig vielen Nachkommastellen dargestellt.


Meine Glaskugel sagt mir, dass in Deinem Code so was steht:


```
BigDecimal a = new BigDecimal(0.1);
```
Das ist böse, weil 0.1 ein double Literal ist, das für den Wert 0,100000001490116119384765625... steht. Und dieser Wert wird dann als Startwert für BigDecimal genommen, was Du ja gar nicht willst. Du willst tatsächlich ein Zehntel, also verwende stattdessen folgenden Konstruktor:


```
BigDecimal a = new BigDecimal("0.1");
```
Hier wird ein String geparst, in dem die Information, dass es sich um exakt ein Zehntel handelt, unverfälscht enthalten ist.

Sag mal, ob das Dein Problem löst.


----------

