我有一个问题显示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)
}
}
Run Code Online (Sandbox Code Playgroud)
我填写专栏:
...
myCol.setCellValueFactory(cellData ->cellData.getValue().getPropertyMyDouble().asObject());
...
Run Code Online (Sandbox Code Playgroud)
现在我的问题是这样的:如果我按原样离开setMyDouble方法,myCol则会出现带有大量小数的数字.我只想要小二进制.
我尝试做的是这样的:
public void setMyDouble(double d) {
BigDecimal bd = new SimpleDecimalFormat("#.00")
myDouble.set(Double.parseDouble(bd.format(d));
}
Run Code Online (Sandbox Code Playgroud)
现在这适用于删除第二个小数后的数字,但问题是,如果我有类似12.00的东西,因为我需要在结尾处转换为double(因为.set()需要一个双倍),它将12.00变成12.0.但是,我需要一直保留两位小数.
有没有办法让myDouble一个DoubleProperty(我这样做,因为它使修改后更容易自动更新表),但目前的数据作为"#.##"格式?
我在考虑做一些像添加实例变量的事情:
StringProperty myDoublePresent;
Run Code Online (Sandbox Code Playgroud)
myDouble它只需要把它变成一个字符串,然后以"#.##"格式出现.
但我更喜欢一种方法,我可以直接使用 DoubleProperty.
尝试
myCol.setCellValueFactory(cellData ->
Bindings.format("%.2f", cellData.getValue().getPropertyMyDouble()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4261 次 |
| 最近记录: |