你如何向下舍入到最近的20in Java的倍数?

Ham*_*ush 4 java math rounding

请记住,我只想将DOWN舍入到最接近的20的倍数,从不向上.

  • 22 - > 20
  • 45 - > 40
  • 69.5 - > 60
  • 60 - > 60

非常感谢!

gas*_*rms 9

public static Integer round20(Integer b){
        return b - (b%20);
    }
Run Code Online (Sandbox Code Playgroud)


Ell*_*sch 8

一种解决方案是从初始值中减去模20的结果(这是除以20的余数).就像是,

double[] in = { 22, 45, 69.5, 60 };
for (double d : in) {
    int v = (int) d;
    v -= v % 20;
    System.out.printf("%.1f --> %d%n", d, v);
}
Run Code Online (Sandbox Code Playgroud)

输出是

22.0 --> 20
45.0 --> 40
69.5 --> 60
60.0 --> 60
Run Code Online (Sandbox Code Playgroud)