【问题标题】:How to round numbers to certain intervals?如何将数字四舍五入到一定的间隔?
【发布时间】:2022-02-03 21:54:03
【问题描述】:

如何对数字进行四舍五入:

如果是 7.3,我希望四舍五入到 7.5,但如果是 7.77,我希望它到 8

另一个例子是,如果是 13.1,我希望它转到 13.5,但如果是 13.9,我希望它转到 14。

这在 Java-Android 中,有什么想法吗?

谢谢!

【问题讨论】:

    标签: java android numbers


    【解决方案1】:

    These 是 Java 常用的舍入模式。

    但您可以制作类似this answer 的内容,并创建自己的自定义舍入策略。


    类似:

    static BigDecimal myRound(BigDecimal value) {
        BigInteger fractPart = value.remainder(BigDecimal.ONE).movePointRight(bd.scale()).abs().toBigInteger();
        
        if (fractPart.compareTo(BigInteger.valueOf(3) == 0) {
            // change value to .5
        } else {
            // change value to .77
        }
    
        return value;
    }
    

    【讨论】:

    • 在此处添加更多信息,而不仅仅是参考其他网站
    猜你喜欢
    • 2012-09-09
    • 2015-11-12
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多