MidpointRounding Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie la stratégie que les méthodes d’arrondi mathématiques doivent utiliser pour arrondir un nombre.
public enum class MidpointRounding
public enum MidpointRounding
[System.Runtime.InteropServices.ComVisible(true)]
public enum MidpointRounding
type MidpointRounding =
[<System.Runtime.InteropServices.ComVisible(true)>]
type MidpointRounding =
Public Enum MidpointRounding
- Héritage
- Attributs
Champs
| Nom | Valeur | Description |
|---|---|---|
| ToEven | 0 | Stratégie d’arrondi au nombre le plus proche. Lorsqu’un nombre est à mi-chemin entre deux autres, il est arrondi vers le nombre pair le plus proche. Les valeurs non intermédiaires ne sont pas affectées par ce choix et sont arrondies à la valeur représentée la plus proche. Également connu sous le nom d’arrondi de banquier. |
| AwayFromZero | 1 | Stratégie d’arrondi au nombre le plus proche. Lorsqu’un nombre est à mi-chemin entre deux autres, il est arrondi vers le nombre le plus proche qui est éloigné de zéro. Les valeurs non intermédiaires ne sont pas affectées par ce choix et sont arrondies à la valeur représentée la plus proche. |
| ToZero | 2 | La stratégie d’arrondi dirigé vers zéro, où chaque valeur , pas seulement les points intermédiaires, est arrondie à zéro. Le résultat est la valeur la plus proche et la plus grande en grandeur que le résultat infiniment précis. Lors de l’arrondi à zéro chiffre, cela équivaut à la troncation ; lors de l’arrondi à un nombre non nul de chiffres, il tronque vers zéro à la précision spécifiée. |
| ToNegativeInfinity | 3 | La stratégie d’arrondi orienté vers le bas, où chaque valeur, pas seulement les points intermédiaires, est arrondie à l’infini négatif. Le résultat est la valeur la plus proche et non supérieure au résultat infiniment précis. Lorsque vous arrondissez à zéro chiffre, cela équivaut à la fonction de plancher mathématique ; lors de l’arrondi à un nombre non nul de chiffres, il applique le même comportement à la précision spécifiée. |
| ToPositiveInfinity | 4 | La stratégie d’arrondi vers le haut, où chaque valeur , pas seulement les points intermédiaires, est arrondie vers l’infini positif. Le résultat est la valeur la plus proche et non inférieure au résultat infiniment précis. Lorsque vous arrondissez à zéro chiffre, cela équivaut à la fonction de plafond mathématique ; lors de l’arrondi à un nombre non nul de chiffres, il applique le même comportement à la précision spécifiée. |
Exemples
L’exemple suivant illustre la Math.Round méthode conjointement avec l’énumération MidpointRounding :
decimal result;
// Round a positive value using different strategies.
// The precision of the result is 1 decimal place.
result = Math.Round(3.45m, 1, MidpointRounding.ToEven);
Console.WriteLine($"{result} = Math.Round({3.45m}, 1, MidpointRounding.ToEven)");
result = Math.Round(3.45m, 1, MidpointRounding.AwayFromZero);
Console.WriteLine($"{result} = Math.Round({3.45m}, 1, MidpointRounding.AwayFromZero)");
result = Math.Round(3.47m, 1, MidpointRounding.ToZero);
Console.WriteLine($"{result} = Math.Round({3.47m}, 1, MidpointRounding.ToZero)\n");
// Round a negative value using different strategies.
// The precision of the result is 1 decimal place.
result = Math.Round(-3.45m, 1, MidpointRounding.ToEven);
Console.WriteLine($"{result} = Math.Round({-3.45m}, 1, MidpointRounding.ToEven)");
result = Math.Round(-3.45m, 1, MidpointRounding.AwayFromZero);
Console.WriteLine($"{result} = Math.Round({-3.45m}, 1, MidpointRounding.AwayFromZero)");
result = Math.Round(-3.47m, 1, MidpointRounding.ToZero);
Console.WriteLine($"{result} = Math.Round({-3.47m}, 1, MidpointRounding.ToZero)\n");
/*
This code example produces the following results:
3.4 = Math.Round(3.45, 1, MidpointRounding.ToEven)
3.5 = Math.Round(3.45, 1, MidpointRounding.AwayFromZero)
3.4 = Math.Round(3.47, 1, MidpointRounding.ToZero)
-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)
-3.4 = Math.Round(-3.47, 1, MidpointRounding.ToZero)
*/
Dim result As Decimal = 0D
Dim posValue As Decimal = 3.45D
Dim negValue As Decimal = -3.45D
' Round a positive value using different strategies.
' 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)
result = Math.Round(posValue, 1, MidpointRounding.ToZero)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToZero)",
result, posValue)
Console.WriteLine()
' Round a negative value using different strategies.
' 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)
result = Math.Round(negValue, 1, MidpointRounding.ToZero)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToZero)",
result, negValue)
Console.WriteLine()
'This code example produces the following results:
'
' 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.ToZero)
'
' -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.ToZero)
'
Remarques
Utilisez l’énumération MidpointRounding avec les surcharges appropriées de Math.Round, MathF.Roundet Decimal.Round pour fournir un contrôle plus complet du processus d’arrondi.
Malgré le nom de l’énumération, tous les modes ne concernent pas seulement la façon dont les points intermédiaires sont gérés. MidpointRoundingdéfinit deux stratégies globales d’arrondi ( arrondi à arrondi le plus proche et dirigé) et chaque champ d’énumération participe exactement à l’une de ces stratégies :
- Les modes les plus proches (AwayFromZero et ToEven) arrondissent toujours à la valeur représentée la plus proche. Ils diffèrent uniquement les uns des autres lorsque l’entrée est exactement à mi-chemin entre deux valeurs (un point intermédiaire), ce qui correspond au nom de l’énumération.
- Les modes d’arrondi dirigés (ToNegativeInfinity, ToPositiveInfinityet ToZero) arrondit toujours toutes les valeurs ( pas seulement les points intermédiaires) dans une direction fixe. Le résultat est la valeur représentée la plus proche dans cette direction, même si l’entrée n’est pas un point intermédiaire.
Arrondir à la valeur la plus proche
Champs:
Une opération d'arrondi au plus proche prend un nombre original avec une précision implicite ou spécifiée; examine le chiffre suivant, qui correspond à cette précision plus un; et renvoie le nombre le plus proche avec la même précision que le nombre original. Pour les nombres positifs, si le chiffre suivant est compris entre 0 et 4, le nombre le plus proche est vers l’infini négatif. Si le chiffre suivant est compris entre 6 et 9, le nombre le plus proche est vers l’infini positif. Pour les nombres négatifs, si le chiffre suivant est compris entre 0 et 4, le nombre le plus proche est vers l’infini positif. Si le chiffre suivant est compris entre 6 et 9, le nombre le plus proche est vers l’infini négatif.
Si le chiffre suivant est compris entre 0 et 4 ou 6 et 9, le choix entre AwayFromZero et ToEven n’affecte pas le résultat de l’opération d’arrondi. Toutefois, si le chiffre suivant est égal à 5, qui est le point intermédiaire entre deux résultats possibles et que tous les chiffres restants sont nuls ou qu’il n’y a pas de chiffres restants, le nombre le plus proche est ambigu. Dans ce cas, les modes d’arrondi au plus proche dans MidpointRounding permettent de spécifier si l’opération d’arrondi retourne le nombre le plus proche de zéro ou le nombre pair le plus proche.
Le tableau suivant illustre les résultats de l’arrondi de certains nombres négatifs et positifs en conjonction avec les modes d’arrondi au plus proche. La précision utilisée pour arrondir les nombres est zéro, ce qui signifie que le nombre après 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 le point intermédiaire, vous pouvez utiliser une MidpointRounding valeur pour déterminer le résultat de l’arrondi. Si AwayFromZero elle est spécifiée, -3 est retournée, car il s’agit du nombre le plus proche de zéro avec une précision de zéro. Si ToEven elle est spécifiée, -2 est retournée, car il s’agit du nombre pair le plus proche avec une précision de zéro.
| Numéro 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 |
Arrondi dirigé
Champs:
Une opération d’arrondi dirigé prend un nombre d’origine avec une précision implicite ou spécifiée et retourne le nombre le plus proche suivant dans une direction spécifique avec la même précision que le nombre d’origine. Modes dirigés sur MidpointRounding le contrôle de la direction vers laquelle chaque valeur est arrondie. Contrairement aux modes les plus proches, ces modes s’appliquent à chaque valeur d’entrée, pas seulement aux points intermédiaires ; par exemple, ToPositiveInfinity arrondit 2,1, 2,5 et 2,8 jusqu’à 3.
Le tableau suivant illustre les résultats de l’arrondi de certains nombres négatifs et positifs en conjonction avec les modes d’arrondi dirigé. La précision utilisée pour arrondir les nombres est zéro, ce qui signifie que le nombre avant la virgule décimale est affecté par l’opération d’arrondi.
| Numéro d’origine | ToNegativeInfinity | ToPositiveInfinity | ToZero |
|---|---|---|---|
| 3,5 | 3 | 4 | 3 |
| 2.8 | 2 | 3 | 2 |
| 2.5 | 2 | 3 | 2 |
| 2.1 | 2 | 3 | 2 |
| -2.1 | -3 | -2 | -2 |
| -2.5 | -3 | -2 | -2 |
| -2.8 | -3 | -2 | -2 |
| -3.5 | -4 | -3 | -3 |