有人可以解释一下这段代码是什么意思吗?在if / else中。我已多次阅读文档,但无法获得这些函数的含义。感谢。
private long getBalanceWithFactor(long balance, double factor) {
double faccountbalance = (double)balance * factor;
long res = 0;
if ((Math.ceil(faccountbalance) - faccountbalance) <= 0.5)
res = (long)Math.ceil(faccountbalance);
else
res = (long)Math.floor(faccountbalance);
return res;
}
答案 0 :(得分:3)
Math.ceil()
向上舍入,Math.floor()
向下舍入到最接近的整数。
例如,如果你给它0.5
ceil(0.5)
将返回1.0
,floor(0.5)
将返回0.0
。
在此上下文中还有另一个有用的功能:Math.round()
,ceil()
和floor()
组合在一起。它使用数学舍入规则舍入到最接近的整数。
请注意这些方法将返回双精度数,因此您需要将它们转换为整数。
答案 1 :(得分:1)
Math.ceil()
- 返回不小于参数且等于数学整数的最小(最接近负无穷大)double值。
Math.floor()
- 返回不大于参数且等于数学整数的最大(最接近正无穷大)double值。
取自link,请查看此信息以获取有关Math类及其中定义的方法的信息。
例如,
Math.ceil(5.8)
给出了6和
Math.floor(4.3)
将提供4
答案 2 :(得分:1)
ceil是上标准化,即ceil为7.6,7.1为8 地板是相反的,平均值是上标准化,即7.6,7.1的天花板是7
这个methd返回整数,而不是余额乘以浮点数和因子
答案 3 :(得分:1)
它将余额*系数计算为faccountbalance
并将其四舍五入为最接近的整数。
如果值为&lt; = 5轮到prev long(floor)。
如果值>&gt; 5轮到下一个长(ceil)。