有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java格式化Bigdecimal。JavaFX

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

我试过这个:

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

格式正常,打印1005689.56。但这里的问题是,当我在应用程序中根据此列对表进行排序时,它引用这些值,就像它们是字符串一样,排序不正确

我做了以下改变:

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

在这里,格式不好。(1005689.5600),但排序工作正常。为了获得正确的格式(“#,#,###.00”)和排序,我必须更改什么


共 (1) 个答案

  1. # 1 楼答案

    我自己做的

    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));
                        }
                    }
                };
            });