将IntegerBinding转换为DoubleBinding

时间:2015-05-15 14:27:07

标签: javafx

这可能看起来像一个简单的问题,但事实证明这并不是那么容易(或者我找不到任何关于如何做到这一点的信息)。

我只是想将一个IntegerBinding,即Bindings.size(families);转换为DoubleBinding,这样如果我做这样的Bindings.divide(Bindings.size(families),Bindings.size(familiesAll)),我就不会得到整数分割的结果。也许还有其他方法可以实现我想要的东西,但转换Bindings是必不可少的事情。

1 个答案:

答案 0 :(得分:1)

有两种选择:

Bindings.createDoubleBinding(() -> 
    1.0 * families.size() / familiesAll.size, 
    Bindings.size(families), Bindings.size(familiesAll));

或:

Bindings.divide(Bindings.size(families).add(0.0), Bindings.size(familiesAll));

或:

Bindings.size(families).add(0.0).divide(Bindings.size(familiesAll));

或:

DoubleProperty familiesSize = new SimpleDoubleProperty();
familiesSize.bind(Bindings.size(families));
Bindings.divide(familiesSize, Bindings.size(familiesAll));