C# Programming

Maîtriser l’arrondi décimal en C#

Spread the love

L’arrondi des valeurs décimales est un aspect crucial de nombreuses applications C#, en particulier lorsqu’il s’agit de calculs financiers ou de présentation de données aux utilisateurs. Cet article explore les deux méthodes principales pour y parvenir : decimal.Round() et Math.Round(), en soulignant leurs différences et en vous guidant dans le choix de l’approche optimale pour vos besoins spécifiques.

Table des matières

Arrondir les décimales avec decimal.Round()

La méthode decimal.Round() est spécifiquement conçue pour arrondir les valeurs décimales et offre un contrôle supérieur sur le processus d’arrondi. Une caractéristique clé est sa capacité à spécifier la stratégie MidpointRounding, qui dicte comment les valeurs exactement à mi-chemin entre deux valeurs arrondies potentielles sont traitées. Deux stratégies courantes sont :

  • MidpointRounding.AwayFromZero (Par défaut) : Arrondit la valeur médiane à partir de zéro. Par exemple, 2,5 est arrondi à 3, et -2,5 est arrondi à -3.
  • MidpointRounding.ToEven : Arrondit la valeur médiane au nombre pair le plus proche. Par exemple, 2,5 est arrondi à 2, et 3,5 est arrondi à 4. Cette approche est souvent préférée en analyse statistique pour minimiser les biais.

Voici comment utiliser decimal.Round() :


using System;

public class DecimalRoundingExample
{
    public static void Main(string[] args)
    {
        decimal value1 = 2.555m;
        decimal value2 = 2.5m;
        decimal value3 = -2.5m;

        // À partir de zéro (par défaut)
        Console.WriteLine($"{value1} arrondi : {decimal.Round(value1, 2)}");
        Console.WriteLine($"{value2} arrondi : {decimal.Round(value2, 2)}");
        Console.WriteLine($"{value3} arrondi : {decimal.Round(value3, 2)}");

        // À pair
        Console.WriteLine($"n{value1} arrondi (ToEven) : {decimal.Round(value1, 2, MidpointRounding.ToEven)}");
        Console.WriteLine($"{value2} arrondi (ToEven) : {decimal.Round(value2, 2, MidpointRounding.ToEven)}");
        Console.WriteLine($"{value3} arrondi (ToEven) : {decimal.Round(value3, 2, MidpointRounding.ToEven)}");
    }
}

Arrondir les décimales avec Math.Round()

La méthode Math.Round() fournit une approche plus simple de l’arrondi, mais avec moins de contrôle. Elle utilise par défaut MidpointRounding.AwayFromZero. Bien que vous puissiez spécifier MidpointRounding.ToEven, decimal.Round() est généralement recommandé pour sa clarté et sa précision, en particulier dans les applications financières.


using System;

public class MathRoundingExample
{
    public static void Main(string[] args)
    {
        decimal value1 = 2.555m;

        // À partir de zéro (par défaut)
        Console.WriteLine($"{value1} arrondi : {Math.Round(value1, 2)}");

        // À pair (spécifié explicitement)
        Console.WriteLine($"n{value1} arrondi (ToEven) : {Math.Round(value1, 2, MidpointRounding.ToEven)}");
    }
}

Choisir la bonne méthode d’arrondi

Pour les applications exigeant un arrondi précis, en particulier les calculs financiers, decimal.Round() avec la spécification explicite de MidpointRounding est le choix préféré. Pour les scénarios moins critiques où le comportement d’arrondi par défaut suffit, Math.Round() offre une solution plus concise.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *