Redondear un valor doble a un valor entero en C#

Muhammad Maisam Abbas 12 octubre 2023
  1. Redondear un valor doble a un valor entero con la función Math.Ceiling() en C#
  2. Redondear un valor doble a un valor entero con la función Math.Floor() en C#
  3. Redondear un valor doble a un valor entero con la función Math.Round() en C#
Redondear un valor doble a un valor entero en C#

Este tutorial discutirá los métodos para redondear un valor doble a un valor entero en C#.

Redondear un valor doble a un valor entero con la función Math.Ceiling() en C#

Si queremos redondear el valor doble 2.5 al valor entero 3, tenemos que usar la función Math.Ceiling(). La función Math.Ceiling() redondea un valor decimal al siguiente valor entero. El siguiente ejemplo de código nos muestra cómo podemos redondear un valor doble a un valor entero con la función Math.Ceiling() en C#.

using System;

namespace round_double_to_intt {
  class Program {
    static void Main(string[] args) {
      double d = 2.5;
      int i = (int)Math.Ceiling(d);
      Console.WriteLine("Original Value = {0}", d);
      Console.WriteLine("Rounded Value = {0}", i);
    }
  }
}

Producción :

Original Value = 2.5
Rounded Value = 3

Redondeamos el valor doble 2.5 al valor entero 3 con la función Math.Ceiling() en C#. El problema con este enfoque es que la función Math.Ceiling() convierte el valor decimal 2.3 en el valor entero 3.

Redondear un valor doble a un valor entero con la función Math.Floor() en C#

Si queremos redondear el valor doble 2.5 al valor entero 2, tenemos que utilizar la función Math.Floor(). La función Math.Floor() redondea un valor decimal al valor entero anterior. El siguiente ejemplo de código nos muestra cómo podemos redondear un valor doble a un valor entero con la función Math.Floor() en C#.

using System;

namespace round_double_to_intt {
  class Program {
    static void Main(string[] args) {
      double d = 2.5;
      int i = (int)Math.Floor(d);
      Console.WriteLine("Original Value = {0}", d);
      Console.WriteLine("Rounded Value = {0}", i);
    }
  }
}

Producción :

Original Value = 2.5
Rounded Value = 2

Redondeamos el valor doble 2.5 al valor entero 2 con la función Math.Floor() en C#. El problema con este enfoque es que la función Math.Floor() convierte el valor decimal 2.9 en el valor entero 2.

Redondear un valor doble a un valor entero con la función Math.Round() en C#

La función Math.Round() se puede utilizar para redondear un valor doble al valor entero más cercano en C#. La función Math.Round() devuelve un valor doble que se redondea al número entero más cercano. El siguiente ejemplo de código nos muestra cómo podemos redondear un valor doble a un valor entero con la función Math.Round() en C#.

using System;

namespace round_double_to_intt {
  class Program {
    static void Main(string[] args) {
      double d = 2.9;
      int i = (int)Math.Round(d);
      Console.WriteLine("Original Value = {0}", d);
      Console.WriteLine("Rounded Value = {0}", i);
    }
  }
}

Producción :

Original Value = 2.9
Rounded Value = 3

Redondeamos el valor decimal 2.9 al valor entero 3 con la función Math.Round() en C#. Utilizamos la conversión de tipos para convertir el valor doble devuelto por la función Math.Round() en un valor entero. Solo hay un problema con este enfoque. La función Math.Round() convierte el valor decimal 2.5 en el valor entero 2.

Podemos solucionar este problema especificando MidpointRounding.AwayFromZero en los argumentos de la función Math.Round(). El siguiente ejemplo de código nos muestra cómo podemos redondear 2.5 a 3 con la función Math.Round() en C#.

using System;

namespace round_double_to_intt {
  class Program {
    static void Main(string[] args) {
      double d = 2.5;
      int i = (int)Math.Round(d, MidpointRounding.AwayFromZero);
      Console.WriteLine("Original Value = {0}", d);
      Console.WriteLine("Rounded Value = {0}", i);
    }
  }
}

Producción :

Original Value = 2.5
Rounded Value = 3

Redondeamos el valor decimal 2.5 al valor entero 3 especificando el parámetro MidpointRounding.AwayFromZero en la función Math.Round() en C#.

Todos los métodos discutidos anteriormente son útiles en diferentes escenarios específicos. La peor forma posible de redondear un valor doble a un valor entero es mediante el encasillado explícito. Esto se debe a que el encasillado explícito ignora todos los valores después del punto decimal y solo devuelve el valor entero antes del punto decimal.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Csharp Double