# Float in jTable auf genau 2 Nachkommastellen



## Hitrix (16. Aug 2011)

Hallo zusammen,

ich habe im Moment das Problem das meine Float Werte die in einem jTable darstellt werden, zwar auf 2 Nachkommastellen gerundet sind, jedoch wird beispielweise bei 19,90 die letzte Null abgeschnitten und so steht nurnoch 19,9 da. Dies ist bei Euro-Werten natürlich nicht so gut ;-)

Die Daten kommen aus einer MySQL Datenbank und sind dort ebenfalls im Float-Format abgelegt. Wie gehe ich nun am schlausten vor? 

Schon mal vielen Dank für eure Hilfe.

Hitrix


----------



## nillehammer (16. Aug 2011)

Du darfst die float Werte nicht direkt als float anzeigen, sondern musst sie vorher formatieren. Z.B. mit dem NumberFormat (NumberFormat (Java Platform SE 6)) oder mit der Methode String.format.


----------



## Hitrix (16. Aug 2011)

Danke, hier meine Lösung:


```
new DefaultTableCellRenderer() {

            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                DecimalFormat df = new DecimalFormat("#0.00");
                if (value != null)  {
                    this.setText(df.format(Double.parseDouble(value.toString())));
                }
                else {
                    this.setText("");
                }
                this.setHorizontalAlignment(RIGHT);  
                return this;
          }

}
```


----------



## SlaterB (16. Aug 2011)

ein etwas einfacherer Weg dürfte ein eigenes TableModel und dann die Methode getValueAt() sein, 
dort kannst du auch einen String statt Zahl übergeben,
bei Sortierung und ähnlichem vielleicht hinderlich


----------

