【发布时间】:2018-02-26 04:40:59
【问题描述】:
我有两个LongProperty (长整数中没有小数位) 变量(longProperty1 和longProperty2)。我需要对它们进行除法,我需要将除法结果保存在 DoubleProperty (双精度中有小数位) 变量 (result) 不丢失小数位.
final DoubleProperty result = new SimpleDoubleProperty(0.0);
final LongProperty longProperty1 = new SimpleLongProperty(45);
final LongProperty longProperty2 = new SimpleLongProperty(7);
result.bind(longProperty1.divide(longProperty2));
System.out.println(result.get()); //print: "6.0" instead of "6.428571428571429" (lost decimal places)
longProperty1 和 longProperty2 是 LongProperty 类型,因为它们接收的数字非常大,所以我不能将它们转换为 DoubleProperties。
另一方面,result 将接收从 0.0 到 1.0 的值(例如:0.0、0.2975、0.5378、0.9853、1.0),因为在我真正的问题longProperty1 <= longProperty2(例如:500/600=0.8333,1/2=0.5,1897/5975=0.3174,...)。
如何做到这一点?
【问题讨论】:
-
long中没有小数位。 -
@EJP 我希望除法产生一个双精度数,它有小数位。所以我将结果放在 DoubleProperty 中。
-
@EJP 我编辑了问题,你现在明白问题了吗?
标签: java javafx division javafx-bindings