java - 四舍五入到 5 的倍数

标签 java rounding currency

我想让我的程序更加精确,并考虑到没有 1、2、7 值的硬币(只有 5、10、20、50、100..),所以有一个规则叫做四舍五入到五福林。

例子:

111,112  -> 110 
113,114  -> 115
116,117  -> 115
118,119  -> 120

我的问题是我应该在 JAVA 中使用哪个函数来实现我的目标并获得正确的舍入值?

最佳答案

你可以这样写:

int roundTo5(int value)
{
    return ((value + 2) / 5) * 5;
}

这采用任何 forint 值,加 2 然后除以 5。这对整数进行“下限舍入”并再次乘以 5。

0 → 2 → 0 → 0
1 → 3 → 0 → 0
2 → 4 → 0 → 0
3 → 5 → 1 → 5
4 → 6 → 1 → 5
5 → 7 → 1 → 5
6 → 8 → 1 → 5
7 → 9 → 1 → 5
8 → 10 → 2 → 10
9 → 11 → 2 → 10

关于java - 四舍五入到 5 的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50715074/

相关文章:

java - 从 ArrayList 中检索样本

java - 如何在贷款表中添加到期日?

python - 为什么 Pandas 舍入方法不将 0.5 舍入到 1?

ios - 尝试将 UITextField 格式化为仅在 iOS 中用于数字输入的货币计算器

currency - 货币符号有iso标准吗?

java - 输入字段的验证

java - 反射(reflection):当 A 可以动态地成为任何类时,创建一个 Consumer<A> 吗?

ios - .999999 时 Swift 四舍五入到 X 位小数位问题

sql-server - TSQL 对小数进行舍入

java - 在java中获取默认网关