【发布时间】:2022-02-03 21:54:03
【问题描述】:
如何对数字进行四舍五入:
如果是 7.3,我希望四舍五入到 7.5,但如果是 7.77,我希望它到 8
另一个例子是,如果是 13.1,我希望它转到 13.5,但如果是 13.9,我希望它转到 14。
这在 Java-Android 中,有什么想法吗?
谢谢!
【问题讨论】:
如何对数字进行四舍五入:
如果是 7.3,我希望四舍五入到 7.5,但如果是 7.77,我希望它到 8
另一个例子是,如果是 13.1,我希望它转到 13.5,但如果是 13.9,我希望它转到 14。
这在 Java-Android 中,有什么想法吗?
谢谢!
【问题讨论】:
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;
}
【讨论】: