Arrondir une valeur double à une valeur entière en C#

Muhammad Maisam Abbas 12 octobre 2023
  1. Arrondir une valeur double à une valeur entière avec la fonction Math.Ceiling() en C#
  2. Arrondir une valeur double à une valeur entière avec la fonction Math.Floor() en C#
  3. Arrondir une valeur double à une valeur entière avec la fonction Math.Round() en C#
Arrondir une valeur double à une valeur entière en C#

Ce didacticiel abordera les méthodes pour arrondir une valeur double à une valeur entière en C#.

Arrondir une valeur double à une valeur entière avec la fonction Math.Ceiling() en C#

Si nous voulons arrondir la valeur double 2.5 à la valeur entière 3, nous devons utiliser la fonction Math.Ceiling(). La fonction Math.Ceiling() arrondit une valeur décimale à la valeur entière suivante. L’exemple de code suivant nous montre comment arrondir une valeur double à une valeur entière avec la fonction 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);
    }
  }
}

Production:

Original Value = 2.5 Rounded Value = 3

Nous avons arrondi la valeur double 2.5 à la valeur entière 3 avec la fonction Math.Ceiling() en C#. Le problème avec cette approche est que la fonction Math.Ceiling() convertit la valeur décimale 2.3 en valeur entière 3.

Arrondir une valeur double à une valeur entière avec la fonction Math.Floor() en C#

Si nous voulons arrondir la valeur double 2.5 à la valeur entière 2, nous devons utiliser la fonction Math.Floor(). La fonction Math.Floor() arrondit une valeur décimale à la valeur entière précédente. L’exemple de code suivant nous montre comment arrondir une valeur double à une valeur entière avec la fonction 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);
    }
  }
}

Production:

Original Value = 2.5 Rounded Value = 2

Nous avons arrondi la valeur double 2.5 à la valeur entière 2 avec la fonction Math.Floor() en C#. Le problème avec cette approche est que la fonction Math.Floor() convertit la valeur décimale 2.9 en valeur entière 2.

Arrondir une valeur double à une valeur entière avec la fonction Math.Round() en C#

La fonction Math.Round() peut être utilisée pour arrondir une valeur double à la valeur entière la plus proche en C#. La fonction Math.Round() renvoie une valeur double arrondie à l’entier supérieur le plus proche. L’exemple de code suivant nous montre comment arrondir une valeur double à une valeur entière avec la fonction 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);
    }
  }
}

Production:

Original Value = 2.9 Rounded Value = 3

Nous avons arrondi la valeur décimale 2.9 à la valeur entière 3 avec la fonction Math.Round() en C#. Nous avons utilisé le typage pour convertir la valeur double retournée par la fonction Math.Round() en une valeur entière. Il n’y a qu’un seul problème avec cette approche. La fonction Math.Round() convertit la valeur décimale 2.5 en valeur entière 2.

Nous pouvons résoudre ce problème en spécifiant MidpointRounding.AwayFromZero dans les arguments de la fonction Math.Round(). L’exemple de code suivant nous montre comment arrondir 2.5 à 3 avec la fonction 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);
    }
  }
}

Production:

Original Value = 2.5 Rounded Value = 3

Nous avons arrondi la valeur décimale 2.5 à la valeur entière 3 en spécifiant le paramètre MidpointRounding.AwayFromZero dans la fonction Math.Round() en C#.

Toutes les méthodes décrites ci-dessus sont utiles dans différents scénarios spécifiques. La pire façon d’arrondir une valeur double en une valeur entière est le transtypage explicite. C’est parce que le typage explicite ignore toutes les valeurs après la virgule décimale et renvoie simplement la valeur entière avant la virgule décimale.

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

Article connexe - Csharp Double