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)