将 IntegerBinding 转换为 DoubleBinding

Convert an IntegerBinding to a DoubleBinding

这似乎是一个简单的问题,但事实证明这并不是那么简单(或者我找不到有关如何执行此操作的任何信息)。

我只是想将我拥有的 IntegerBinding,即 Bindings.size(families); 转换为 DoubleBinding,这样如果我这样做 Bindings.divide(Bindings.size(families),Bindings.size(familiesAll)),我就不会得到整数除法的结果。也许还有其他方法可以实现我想要的,但转换绑定是非常重要的事情,它必须是可能的。

几个选项:

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));