格式化Bigdecimal。 JavaFX的

时间:2015-12-09 11:32:08

标签: java javafx javafx-8 bigdecimal

我想在BigDecimal应用程序的TableColumn中打印JavaFx。但我无法正确格式化它。

我试过这个:

DecimalFormat df = new DecimalFormat("#,###.00");
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleStringProperty(df.format(cellData.getValue().getSellAmount()).toString()));

格式正常,打印1 005 689.56。但问题是,当我在我的应用程序中根据此列对表进行排序时,它将这些值称为字符串并且排序不正确。

我做了以下更改:

tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleObjectProperty<BigDecimal>(cellData.getValue().getSellAmount()));

此处格式不正常。 (1005689.5600),但排序正常。为了获得正确的格式(&#34;#,###。00&#34;)和排序,我需要更改什么?

1 个答案:

答案 0 :(得分:3)

我自己做了。

tc_ma_sell_amount.setCellFactory(param -> {
            return new TableCell<ConversionDeals, BigDecimal>(){
                @Override
                protected void updateItem(BigDecimal item, boolean empty) {
                    super.updateItem(item, empty);
                    if(empty || item == null){
                        setText("");
                    } else {
                        setText(df.format(item));
                    }
                }
            };
        });