gpt4 book ai didi

java - 在 TableView 中显示最多两位小数的 DoubleProperty

转载 作者:行者123 更新时间:2023-11-29 10:00:38 25 4
gpt4 key购买 nike

我在显示小数点后第二个 doubleProperty 时遇到问题。

粗略的布局如下所示:

public static void main(String[] args) {
private TableView<myType> myTable;
private TableColumn<myType, Double> myCol;

public class myObject {
.....
DoubleProperty myDouble;
....

public doubleProperty getPropertyMyDouble() {
return myDouble;
}

public void setMyDouble(double d) {
myDouble.set(d)
}
}

然后我用以下内容填充该列:

   ...
myCol.setCellValueFactory(cellData ->cellData.getValue().getPropertyMyDouble().asObject());
...

现在我的问题是:如果我按原样保留 setMyDouble 方法,myCol 会充满数字很多小数。我只想要小数点后第二位。

我尝试做的是这样的:

public void setMyDouble(double d) {
BigDecimal bd = new SimpleDecimalFormat("#.00")
myDouble.set(Double.parseDouble(bd.format(d));
}

现在这可以删除小数点后第二个数字,但问题是如果我有一些东西像 12.00,因为我需要在最后转换为 double(因为 .set() 需要 double)它变成 12.00进入 12.0.但是,我需要始终保留两位小数。

有什么方法可以将 myDouble 保留为 DoubleProperty(我这样做是因为它可以更轻松地在更改后自动更新表格)但以 "#.##" 格式显示数据?

我在想也许可以做一些像添加实例变量这样的事情:

StringProperty myDoublePresent;

它只需要 myDouble 并将其转换为字符串,然后以 "#.##" 格式呈现。

但我更喜欢一种可以直接使用 DoubleProperty.

的方法

最佳答案

尝试

myCol.setCellValueFactory(cellData ->
Bindings.format("%.2f", cellData.getValue().getPropertyMyDouble()));

关于java - 在 TableView 中显示最多两位小数的 DoubleProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com