我在显示小数点后第二个 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/