Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

MidpointRounding énumération

 

Date de publication : novembre 2016

Spécifie comment les méthodes d'arrondi mathématiques doivent traiter un nombre qui se trouve à mi-chemin entre deux nombres.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

[ComVisibleAttribute(true)]
public enum MidpointRounding

Nom du membreDescription
AwayFromZero

Lorsqu'un nombre se trouve à mi-chemin entre deux autres, il est arrondi au nombre pair le plus près.

ToEven

Lorsqu'un nombre est à mi-chemin entre deux autres, il est arrondi vers le nombre le plus éloigné de zéro.

Utilisez MidpointRounding avec les surcharges appropriées de Math.Round pour mieux contrôler le processus d’arrondi.

Une opération d’arrondi prend un nombre d’origine avec une précision implicite ou spécifiée ; examine le chiffre suivant, qui est à cette précision plus un. Retourne le nombre le plus proche avec la même précision que le nombre d’origine. Pour les nombres positifs, si le chiffre suivant est comprise entre 0 et 4, le nombre le plus proche est vers l’infini négatif. Si le chiffre suivant est de 6 à 9, le nombre le plus proche est vers l’infini positif. Pour les nombres négatifs, si le chiffre suivant est comprise entre 0 et 4, le nombre le plus proche est vers l’infini positif. Si le chiffre suivant est de 6 à 9, le nombre le plus proche est vers l’infini négatif.

Dans les cas précédents, le MidpointRounding énumération n’affecte pas le résultat de l’opération d’arrondi. Toutefois, si le chiffre suivant est 5, qui est à mi-chemin entre deux résultats possibles et tous les chiffres restants sont zéro ou l’absence de chiffres restants, le nombre le plus proche est ambigu. Dans ce cas, le MidpointRounding énumération permet de spécifier si l’opération d’arrondi retourne le nombre le plus proche en s’éloignant de zéro ou le nombre pair le plus proche.

Le tableau suivant montre les résultats de l’arrondi des nombres positifs et négatifs conjointement avec les valeurs de MidpointRounding. La précision utilisée pour arrondir les nombres est zéro, ce qui signifie que le nombre après que la virgule décimale affecte l’opération d’arrondi. Par exemple, pour le nombre -2,5, le chiffre après la virgule décimale est 5. Étant donné que ce chiffre est au milieu, vous pouvez utiliser un MidpointRounding valeur pour déterminer le résultat de l’arrondi. Si AwayFromZero est spécifié, -3 est retourné car c’est le nombre le plus proche en s’éloignant de zéro avec une précision égale à zéro. Si ToEven est spécifié, -2 est retourné, car il est le nombre pair le plus proche avec une précision égale à zéro.

Nombre d’origine

AwayFromZero

ToEven

3.5

4

4

2.8

3

3

2.5

3

2

2.1

2

2

-2.1

-2

-2

-2.5

-3

-2

-2.8

-3

-3

-3.5

-4

-4

L’exemple de code suivant montre la Round méthode conjointement avec la MidpointRounding énumération.

// This example demonstrates the Math.Round() method in conjunction 
// with the MidpointRounding enumeration.
using System;

class Sample 
{
    public static void Main() 
    {
    decimal result = 0.0m;
    decimal posValue =  3.45m;
    decimal negValue = -3.45m;

// By default, round a positive and a negative value to the nearest even number. 
// The precision of the result is 1 decimal place.

    result = Math.Round(posValue, 1);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, posValue);
    result = Math.Round(negValue, 1);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, negValue);
    Console.WriteLine();

// Round a positive value to the nearest even number, then to the nearest number away from zero. 
// The precision of the result is 1 decimal place.

    result = Math.Round(posValue, 1, MidpointRounding.ToEven);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, posValue);
    result = Math.Round(posValue, 1, MidpointRounding.AwayFromZero);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, posValue);
    Console.WriteLine();

// Round a negative value to the nearest even number, then to the nearest number away from zero. 
// The precision of the result is 1 decimal place.

    result = Math.Round(negValue, 1, MidpointRounding.ToEven);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, negValue);
    result = Math.Round(negValue, 1, MidpointRounding.AwayFromZero);
    Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, negValue);
    Console.WriteLine();
    }
}
/*
This code example produces the following results:

 3.4 = Math.Round( 3.45, 1)
-3.4 = Math.Round(-3.45, 1)

 3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
 3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

*/

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: