Java 本规范中的天花板是什么意思?

Java 本规范中的天花板是什么意思?,java,Java,有人能解释一下这个代码是什么意思吗?在if/else中。我已经阅读了好几次文档,但无法理解这些函数的含义。谢谢 private long getBalanceWithFactor(long balance, double factor) { double faccountbalance = (double)balance * factor; long res = 0; if ((Math.ceil(faccountbalance) - faccou

有人能解释一下这个代码是什么意思吗?在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;
    }
Math.ceil向上舍入,Math.floor向下舍入到最接近的整数

例如,如果你给它0.5

ceil0.5将返回1.0,floor0.5将返回0.0

在此上下文中还有另一个有用的函数:Math.round,它是天花板和地板的组合。它使用数学舍入规则舍入到最接近的整数

请注意,这些方法将返回double,因此您需要将它们转换为整数。

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

例如,如果你给它0.5

ceil0.5将返回1.0,floor0.5将返回0.0

在此上下文中还有另一个有用的函数:Math.round,它是天花板和地板的组合。它使用数学舍入规则舍入到最接近的整数

请注意,这些方法将返回double,因此您需要对它们进行强制转换以获得整数。

Math.ceil-返回不小于参数且等于数学整数的最接近负无穷大的最小双精度值

Math.floor-返回不大于参数且等于数学整数的最接近正无穷大的最大双精度值

从中获取,检查此项以获取有关数学类以及其中定义的方法的信息

比如说,

数学ceil5.8给出6和

Math.floor4.3将给出4

Math.ceil-返回不小于参数且等于数学整数的最接近负无穷大的最小双精度值

Math.floor-返回不大于参数且等于数学整数的最接近正无穷大的最大双精度值

从中获取,检查此项以获取有关数学类以及其中定义的方法的信息

比如说,

数学ceil5.8给出6和


Math.floor4.3将给出4

ceil是上标准化值,即ceil为7.6,7.1为8 地板是相反的,即7.6的上层标准化,7.1是7


该方法返回的整数不是平衡与因子相乘的浮点数,ceil是标准化上限,即ceil为7.6,7.1为8 地板是相反的,即7.6的上层标准化,7.1是7


此方法返回余额与因子乘积的整数而非浮点数

它将余额*因子计算为faccountbalance,并将其四舍五入为最接近的整数


如果该值是5个舍入到下一个长单元。

它将balance*因子计算为faccountbalance,并舍入到最接近的整数


如果该值为下一个长单元的5轮。

docs,docs,docs,docs…请阅读与Math.roundbalance*factor相同的java API文档,还是我遗漏了什么?其作用与:res=long facountbalance+0.5@JorisW适用于正数,负值需要-0.5。docs,docs,docs,docs…请阅读与Math.roundbalance*factor相同的java API文档,还是我遗漏了什么?其作用与:res=long facountbalance+0.5@JorisW适用于正数,负值需要-0.5。谢谢你指出我编辑了我的答案。@谁被否决:愿意解释吗?谢谢你指出我编辑了我的答案。@谁被否决:愿意解释吗?为什么这篇文章被否决?为什么这篇文章被否决?