En este post vamos a ver cómo usar funciones de Math en C# para redondear números. A mi modo de ver existen 3 maneras de redondear números:
Redondear basándose en la parte fraccionaria. En este caso si es mayor o igual que .5 sube, y si no, baja.
Las otras 2 maneras son forzar el redondeo hacia abajo y forzar el redondeo hacia arriba sin importar la parte fraccionaria.
3 Métodos para redondear con C#
Para redondear hacia abajo se utiliza Math.Floor
, para redondear hacia arriba usamos Math.Ceiling
y finalmente, para redondear basándose en la parte que va después del punto usamos Math.Round
.
Recordemos que al redondear un número se devuelve un entero, por eso es que se llama redondear o round.
Ejemplos de redondeo con C#
El código que demuestra el redondeo es el siguiente:
/*
Demostrar 3 formas de redondear números en C#
@author parzibyte
*/
using System;
class MainClass {
public static void Main (string[] args) {
// Para dedondear de modo que:
// * Mayor o igual que .5 sube
// * Menor que .5 baja
// Usa Math.Round
Console.WriteLine("Round(1.1): {0}", Math.Round(1.1));
Console.WriteLine("Round(1.58): {0}", Math.Round(1.58));
Console.WriteLine("Round(50.9): {0}", Math.Round(50.9));
Console.WriteLine("Round(15.1): {0}", Math.Round(15.1));
// Si quieres forzar el redondeo hacia abajo
// utiliza Math.Floor. Eso hace que tanto .1 hasta .9 bajen
Console.WriteLine("Floor(1.1): {0}", Math.Floor(1.1));
Console.WriteLine("Floor(1.58): {0}", Math.Floor(1.58));
Console.WriteLine("Floor(50.9): {0}", Math.Floor(50.9));
Console.WriteLine("Floor(15.1): {0}", Math.Floor(15.1));
// Si quieres forzar el redondeo hacia arriba
// utiliza Math.Ceiling. Eso hace que tanto .1 hasta .9 suban
Console.WriteLine("Ceiling(1.1): {0}", Math.Ceiling(1.1));
Console.WriteLine("Ceiling(1.58): {0}", Math.Ceiling(1.58));
Console.WriteLine("Ceiling(50.9): {0}", Math.Ceiling(50.9));
Console.WriteLine("Ceiling(15.1): {0}", Math.Ceiling(15.1));
}
}
Puedes ejecutarlo aquí.
Como siempre, te invito a leer más sobre C# y matemáticas.
(“…En este caso si es mayor o igual que .5 sube…”).
Ejemplo con 4,5. estoy probando y me da:
4 con math.floor.
4. con math.round
5 con math.ceiling.
me sorprende el resultado con math.round, porque tenía asumido el texto en comillas.