Java:舍入到最接近的5的倍数(向上或向下)

And*_*Dev 47 java rounding

我需要将一个数字舍入到最接近的5的倍数(向上或向下).例如,以下是数字列表及其旁边需要向上/向下舍入的数字.

12.5  10
62.1  60
68.3  70
74.5  75
80.7  80
Run Code Online (Sandbox Code Playgroud)

数字只会是积极的.

gef*_*fei 85

没有测试过,但5*(Math.round(f/5));应该工作

  • @MilindaBandara你为什么认为75.5应该回76?根据OP提供的例子,它应该返回75 (4认同)

小智 34

最高值为5的最近倍数

5*(Math.ceil(Math.abs(number/5)));
Run Code Online (Sandbox Code Playgroud)

为了更低的价值

5*(Math.floor(Math.abs(number/5)));
Run Code Online (Sandbox Code Playgroud)

它只给出正值.


kol*_*aTM 6

这样的事情怎么样:

return round((number/5))*5;
Run Code Online (Sandbox Code Playgroud)


Ach*_*Jha 6

public static void main(String args[]) {
    double num = 67.5;
    if (num % 5 == 0)
        System.out.println("OK");
    else if (num % 5 < 2.5)
        num = num - num % 5;
    else
        num = num + (5 - num % 5);
    System.out.println(num);

}
Run Code Online (Sandbox Code Playgroud)

试试这个.

  • 是的,我不知道圆,所以我为它编写了代码.:( (6认同)

小智 5

Gefei的解决方案正在工作,但是我必须像这样将显式转换为double: 5*(Math.round((double)f/5))