Java: от раунда до ближайшего кратного 5 (вверх или вниз)
Мне нужно округлить число до ближайшего кратного 5 (вверх или вниз). Например, вот список чисел и число рядом с ним, которое нужно округлить вверх/вниз до.
12.5 10
62.1 60
68.3 70
74.5 75
80.7 80
Числа будут только положительными.
Ответ 1
не тестировали его, но 5*(Math.round(f/5)); должен работать
Ответ 2
Ближайшее Множество из 5
для верхнего значения
5*(Math.ceil(Math.abs(number/5)));
для более низкого значения
5*(Math.floor(Math.abs(number/5)));
он дает только положительное значение.
Ответ 3
public static void main(String args[]) {
double num = 67.5;
if (num % 5 == 0)
System.out.println("OK");
else if (num % 5 < 2.5)
num = num - num % 5;
else
num = num + (5 - num % 5);
System.out.println(num);
}
Попробуйте это.
Ответ 4
Как насчет чего-то вроде этого:
return round((number/5))*5;
Ответ 5
Решение Gefei работает, но мне нужно было явно преобразовать его в double: 5*(Math.round((double)f/5))
Ответ 6
На этой странице есть много других решений, но я считаю, что это наиболее сжатое решение.
Чтобы найти ближайший кратный х для данного числа,
пусть x будет кратным, а num заданным числом:
// The closest multiple of x <= num
int multipleOfX = x * ( num / x );