首页 > 解决方案 > 四舍五入为 5 的倍数

问题描述

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

例子:

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

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

标签: javaroundingcurrency

解决方案


你可以这样写:

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

这采用任何福林值,加 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

推荐阅读