Если вы используете много из них на относительно медленной платформе, вы можете исключить умножение с помощью варианта:
t = m + n - 1;
return (t - (t% n));
Конечно, если вы можете ограничить ваше кратное значениями 2 ^ n, то операция модуля также может быть признана устаревшей в пользу ее логического эквивалента (обычно "&").
Кстати, показанная выше функция «округления» имеет серьезные недостатки и будет корректно округляться только тогда, когда {(m% n) == (n - 1)}; округление вниз подразумевается для целочисленного деления и, как таковое, не требует компенсации.