Saltar al contenido

Redondeo a la centena más cercana

Solución:

Aproveche la división de enteros, que trunca la parte decimal del cociente. Para que parezca que se está redondeando, agregue 99 primero.

int rounded = ((num + 99) / 100 ) * 100;

Ejemplos:

801: ((801 + 99) / 100) * 100 → 900 / 100 * 100 → 9 * 100 = 900
99 : ((99 + 99) / 100) * 100 → 198 / 100 * 100 → 1 * 100 = 100
14 : ((14 + 99) / 100) * 100 → 113 / 100 * 100 → 1 * 100 = 100
452: ((452 + 99) / 100) * 100 → 551 / 100 * 100 → 5 * 100 = 500
203: ((203 + 99) / 100) * 100 → 302 / 100 * 100 → 3 * 100 = 300
200: ((200 + 99) / 100) * 100 → 299 / 100 * 100 → 2 * 100 = 200

Cita de la especificación del lenguaje Java relevante, Sección 15.17.2:

La división de enteros se redondea hacia 0. Es decir, el cociente producido para los operandos nyd que son enteros después de la promoción numérica binaria (§5.6.2) es un valor entero q cuya magnitud es lo más grande posible mientras satisface | d · q | ≤ | n |.

Aquí hay un algoritmo que creo que funciona para cualquier caso “múltiplo de”. Déjame saber lo que piensas.

int round (int number,int multiple){

    int result = multiple;

    //If not already multiple of given number

    if (number % multiple != 0){

        int division = (number / multiple)+1;

        result = division * multiple;

    }

    return result;

}

Prueba esto:

(int) (Math.ceil(number/100.0))*100
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *