将数字舍入到特定倍数

8

如何在Java中四舍五入到指定倍数? 在 Excel 中,有一个函数mround可以轻松地将数字四舍五入到指定的倍数,例如:

    mRound(variable,multiple)

如果x=7.9mRound(x,3)会返回9,如果x=7.2,则会返回6。我目前找到的所有舍入函数都只能四舍五入到最近的整数或指定小数位数,但我想能够为每个变量更改倍数。有人知道哪个函数在这种情况下最好吗?


没有单独的函数可以实现这个功能。mul*round(x/mul) - Marko Topolnik
1个回答

21

将数值除以该数字,四舍五入后再乘以该数字。

double mRound(double value, double factor) {
    return Math.round(value / factor) * factor;
}

是的...虽然我怀疑factor和返回值都应该是int类型。 - Clockwork-Muse
@X-Zero:将“factor”设置为“double”类型,可以使用像“0.001”这样的值来四舍五入到千分位。 - Ry-
我们如何使用BigDecimal而不是double来做同样的事情? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接