# Nachkommastellen beim NumberFormat?



## TheSunToucher (11. Jul 2005)

Hallo,

irgendwie glaube ich das ist eine simple Frage, aber irgendwie verhält sich die Klasse NumberFormat nicht wie erwartet. Hier ein Beispiel:


```
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.GERMAN);
        BigDecimal bigDecimal = new BigDecimal("2.96796543");
        
        System.out.println(numberFormat.format(bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP)));
        System.out.println(numberFormat.format(bigDecimal.setScale(4, BigDecimal.ROUND_HALF_UP)));
        System.out.println(numberFormat.format(bigDecimal.setScale(6, BigDecimal.ROUND_HALF_UP)));
```

die Ausgabe:


```
2,97
2,968
2,968
```

Wieso werden die Nachkommastellen abgeschnitten, obwohl ich eine Scale angebe? Wie kann ich die Zahl inklusive aller Nachkommastellen ausgeben?

Danke, Gruß
Tim


----------



## hugo (11. Jul 2005)

Dein setScale(), schneidet entweder ab, wenn nur noch "Nullen" folgen oder an der definierten Stelle. Sowohl bei auf 6 Stellen, als auch auf 4 Stellen kommt dort 2,968 raus weil du ja aufrundest. Für die Nachkommastellen schau dir mal DecimalFormat an. Dort kannst du besser festlegen, wie dein Zahlen aussehen sollen.


----------



## TheSunToucher (11. Jul 2005)

Ah, sowas hab ich gesucht, danke!


----------

