在 TableView JavaFx 中显示浮点数的两位小数

display two decimal places of a float in a TableView JavaFx

所以基本上我是在按照 DAO 模式开发这个 Javafx 应用程序... 我希望花车的结尾是 .00 而不是 .0(代表余额.. 金钱) balance records in tableview with .0

下面是我如何初始化 tableview 组件

idC.setCellValueFactory(cellData -> cellData.getValue().idProperty().asObject());
balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asObject());
dateC.setCellValueFactory(cellData -> cellData.getValue().dateProperty());
timeC.setCellValueFactory(cellData -> cellData.getValue().timeProperty());

使用 cellFactory 除了 你的 cellValueFactory (我假设 balanceC 对某些人来说是 TableColumn<T, Double>输入 T:

balanceC.setCellFactory(c -> new TableCell<>() {
    @Override
    protected void updateItem(Double balance, boolean empty) {
        super.updateItem(balance, empty);
        if (balance == null || empty) {
            setText(null);
        } else {
            setText(String.format("%.2f", balance.doubleValue());
        }
    }
});

如果需要,您可以添加货币符号并使用更复杂的格式。

如果您不想添加更多不必要的代码,则不需要 CellFactory。

首先,将您的 TableColumn<XXX,Double> balanceC 更改为 TableColumn<XXX,String> balanceC

然后将您的单元格值工厂更改为:

balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asString("%.2f"));

IMO 的简单和清洁方式。

就我个人而言,当我需要更复杂的单元格时,我会编写自定义 CellFactory,例如:在单元格内混合图像和其他节点。