这段代码中的ceill floor是什么意思?

时间:2013-08-13 09:31:28

标签: java

有人可以解释一下这段代码是什么意思吗?在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;
    }

4 个答案:

答案 0 :(得分:3)

Math.ceil()向上舍入,Math.floor()向下舍入到最接近的整数。

例如,如果你给它0.5

ceil(0.5)将返回1.0floor(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)。