Вопрос в том, как округлить заданное значение до ближайшего «почти точного» множителя заданного фактора, f. Например:
Если f = 2.6, то каждый вызов «roundUp (x, 2.6)» будет возвращать число из набора {0, +/- 2.6, +/- 2 * 2.6, +/- 3 * 2.6, .. .}
Как правило, мое f - это либо степень 10 (где сила положительная или отрицательная), либо 1/2 указанной мощности 10.
Другой пример: f = 0,001, должно округляться до ближайшего целого числа, кратного 0,001, например, {0, +/- 0,001, +/- 2 * 0,001, +/- 3 * 0,001}.
ОБНОВЛЕНИЕ: я хочу, чтобы результат roundUp (x, f) был «потолком» результата, то есть наименьшего элемента из множества, кратного или превышающего x (если это правильный способ слово это). См. Мой ответ ниже для не очень элегантного решения (которое, кажется, работает во всех случаях, которые я могу довести до конца).
Все, что мне нужно, это приближение с плавающей запятой (с использованием double в Java). Любой совет с благодарностью!