如何将数字舍入到一定范围内?

Flo*_*ler 6 java rounding

我有这样的价值:

421.18834
Run Code Online (Sandbox Code Playgroud)

而且我必须使用一个看起来像这样的面具正确地将它数学化:

0.05
0.04
0.1
Run Code Online (Sandbox Code Playgroud)

例如,如果掩码为0.04,我必须得到该值421.20,因为.18比.16更接近.20.

我使用Google找到的所有功能都不起作用.

你能帮我么?

fre*_*ley 10

double initial = 421.18834;
double range = 0.04;

int factor = Math.round(initial / range); // 10530 - will round to correct value

double result = factor * range; // 421.20
Run Code Online (Sandbox Code Playgroud)