格式化 Bigdecimal。 JavaFX
Formatting Bigdecimal. JavaFX
我想在我的 JavaFx
应用程序的 TableColumn 中打印 BigDecimal
。但是我无法正确格式化它。
我试过这个:
DecimalFormat df = new DecimalFormat("#,###.00");
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleStringProperty(df.format(cellData.getValue().getSellAmount()).toString()));
格式没问题,打印出1 005 689.56。但是这里的问题是,当我根据我的应用程序中的这一列对 table 进行排序时,它引用这些值就好像它们是字符串并且排序不正确。
我做了以下更改:
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleObjectProperty<BigDecimal>(cellData.getValue().getSellAmount()));
这里,格式不对。 (1005689.5600),但排序工作正常。我必须更改什么才能获得正确的格式 ("#,###.00") 和排序?
我自己做的。
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));
}
}
};
});
我想在我的 JavaFx
应用程序的 TableColumn 中打印 BigDecimal
。但是我无法正确格式化它。
我试过这个:
DecimalFormat df = new DecimalFormat("#,###.00");
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleStringProperty(df.format(cellData.getValue().getSellAmount()).toString()));
格式没问题,打印出1 005 689.56。但是这里的问题是,当我根据我的应用程序中的这一列对 table 进行排序时,它引用这些值就好像它们是字符串并且排序不正确。
我做了以下更改:
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleObjectProperty<BigDecimal>(cellData.getValue().getSellAmount()));
这里,格式不对。 (1005689.5600),但排序工作正常。我必须更改什么才能获得正确的格式 ("#,###.00") 和排序?
我自己做的。
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));
}
}
};
});