java - 此代码中的 ceill floor 是什么意思?

标签 java

<分区>

谁能解释一下这段代码是什么意思?在如果/否则。我已经多次阅读文档,但无法理解这些功能的含义。谢谢。

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

ceil(0.5)将返回 1.0 , 和 floor(0.5)将返回 0.0 .

在此上下文中还有另一个有用的函数:Math.round()这是 ceil()floor()合并。它使用数学舍入规则舍入到最接近的整数。

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

关于java - 此代码中的 ceill floor 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205431/

相关文章:

java - 无法通过回调方法更新textview

java - 将 OutputStream 与 InputStream 连接起来

java - 如何在java中将无名对象转换为JSON(使用GSON)?

java - 在Eclipse中附加源Mapper.class

java - n×n 矩阵作业

java - 为什么我的 BitSet 大小为 0?

java - 为什么JVM CMS(concurrent mark-and-sweep) GC需要两次停顿?

java - 什么是NullPointerException,我该如何解决?

java - postman 给出了正确的响应,但放心返回了错误的响应

java - 为什么程序中输入错误