Подтвердить что ты не робот

Java: от раунда до ближайшего кратного 5 (вверх или вниз)

Мне нужно округлить число до ближайшего кратного 5 (вверх или вниз). Например, вот список чисел и число рядом с ним, которое нужно округлить вверх/вниз до.

12.5  10
62.1  60
68.3  70
74.5  75
80.7  80

Числа будут только положительными.

4b9b3361

Ответ 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 );

В твоем случае:

int multipleOf5 = 5 * ( num / 5 );