Saltar al contenido

Redondear números enteros al múltiplo de 10 más cercano

Nuestros mejores desarrolladores han agotado sus provisiones de café, en su búsqueda a tiempo completo por la solución, hasta que Ricardo halló el hallazgo en GitHub y ahora la compartimos aquí.

Solución:

Simplemente crearía un par de métodos;

int RoundUp(int toRound)

     if (toRound % 10 == 0) return toRound;
     return (10 - toRound % 10) + toRound;


int RoundDown(int toRound)

    return toRound - toRound % 10;

Módulo nos da el resto, en el caso de redondear 10 - r te lleva a la décima más cercana, para redondear hacia abajo solo restas r. Muy claro.

No necesita usar módulo (%) o punto flotante …

Esto funciona:

public static int RoundUp(int value)

    return 10*((value + 9)/10);


public static int RoundDown(int value)

    return 10*(value/10);

Este código se redondea al múltiplo de 10 más cercano:

int RoundNum(int num)

     int rem = num % 10;
     return rem >= 5 ? (num - rem + 10) : (num - rem);

Uso muy simple:

Console.WriteLine(RoundNum(143)); // prints 140
Console.WriteLine(RoundNum(193)); // prints 190

Comentarios y valoraciones del post

Tienes la opción de añadir valor a nuestra información cooperando tu experiencia en las aclaraciones.

¡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 *