Вопрос по java, math, function, rounding – Округление чисел до конкретных кратных

7

Как я могу округлить до определенного кратного в Java? В Excel естьmround функция, которая позволяет легко округлить до указанного кратного, например, так:

<code>    mRound(variable,multiple)
</code>

такmRound(x,3) вернется9 еслиx = 7.9 а также6 еслиx = 7.2.

Все функции округления, которые я нашел до сих пор, всегда округляются до ближайшего целого числа или до указанного числа десятичных знаков, но я хочу иметь возможность изменять кратное для каждой переменной. Кто-нибудь знает, какая функция будет лучше для этой ситуации?

Нет единой функции для этого.mul*round(x/mul). Marko Topolnik

Ваш Ответ

1   ответ
17

Просто разделите на число, округлите и умножьте на число.

double mRound(double value, double factor) {
    return Math.round(value / factor) * factor;
}
Ура! Это было просто! Ты крут! just eric
Да ... хотя я подозреваю, что обаfactor и возвращаемое значение должно бытьints.
@ X-Zero: Созданиеfactor double позволяет использовать такие значения, как0.001 округлить до ближайшей тысячной.

Похожие вопросы