MidpointRounding Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u de strategie op die wiskundige afrondingsmethoden moeten gebruiken om een getal af te ronden.
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
- Overname
- Kenmerken
Velden
| Name | Waarde | Description |
|---|---|---|
| ToEven | 0 | De strategie voor het afronden op het dichtstbijzijnde getal en wanneer een getal halverwege tussen twee andere is, wordt het afgerond op het dichtstbijzijnde even getal. |
| AwayFromZero | 1 | De strategie voor het afronden op het dichtstbijzijnde getal en wanneer een getal halverwege tussen twee andere is, wordt het afgerond op het dichtstbijzijnde getal dat van nul is verwijderd. |
| ToZero | 2 | De strategie van gerichte afronding naar nul, met het resultaat dat het dichtst bij en niet groter is dan het oneindig nauwkeurige resultaat. |
| ToNegativeInfinity | 3 | De strategie van neerwaarts gerichte afronding, met het resultaat dat het dichtst bij en niet groter is dan het oneindig nauwkeurige resultaat. |
| ToPositiveInfinity | 4 | De strategie van opwaarts gerichte afronding, met het resultaat dat zich het dichtst bij en niet minder dan het oneindig nauwkeurige resultaat bevindt. |
Voorbeelden
In het volgende voorbeeld ziet u de Math.Round methode in combinatie met de MidpointRounding opsomming:
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)
'
Opmerkingen
Gebruik de MidpointRounding enumeratie met de juiste overloads van Math.Round, MathF.Round en Decimal.Round om meer controle te bieden over het afrondingsproces.
Er zijn twee algemene afrondingsstrategieën( afgerond op dichtstbijzijnde en gerichte afronding) en elk opsommingsveld neemt deel aan precies een van deze strategieën.
Afronden naar de dichtstbijzijnde
Fields:
Een afronding tot de dichtstbijzijnde waarde bewerking neemt een oorspronkelijk getal met een impliciete of opgegeven precisie, onderzoekt het volgende cijfer dat zich op die precisie plus één bevindt, en retourneert het dichtstbijzijnde getal met dezelfde precisie als het oorspronkelijke getal. Als voor positieve getallen het volgende cijfer van 0 tot en met 4 ligt, ligt het dichtstbijzijnde getal bij negatieve oneindigheid. Als het volgende cijfer van 6 tot en met 9 ligt, ligt het dichtstbijzijnde getal op positieve oneindigheid. Als voor negatieve getallen het volgende cijfer van 0 tot en met 4 ligt, ligt het dichtstbijzijnde getal in de richting van positief oneindigheid. Als het volgende cijfer van 6 tot en met 9 ligt, ligt het dichtstbijzijnde getal in de richting van negatief oneindigheid.
Als het volgende cijfer van 0 tot en met 4 of 6 tot en met 9 ligt, heeft dit MidpointRounding.AwayFromZeroMidpointRounding.ToEven geen invloed op het resultaat van de afrondingsbewerking. Als het volgende cijfer echter 5 is, wat het middelpunt is tussen twee mogelijke resultaten en alle resterende cijfers nul zijn of er geen resterende cijfers zijn, is het dichtstbijzijnde getal dubbelzinnig. In dit geval kunt u met de afrondingswijzen naar de dichtstbijzijnde MidpointRounding opgeven of de afrondingsbewerking het dichtstbijzijnde getal van nul af of het dichtstbijzijnde even getal retourneert.
In de volgende tabel worden de resultaten getoond van het afronden van enkele negatieve en positieve getallen in combinatie met afrondingsmethoden naar het dichtstbijzijnde getal. De precisie die wordt gebruikt om de getallen af te ronden, is nul, wat betekent dat het getal na het decimaalteken van invloed is op de afrondingsbewerking. Voor het getal -2,5 is het cijfer na de decimale komma bijvoorbeeld 5. Omdat dat cijfer het middelpunt is, kunt u een MidpointRounding waarde gebruiken om het resultaat van afronding te bepalen. Als AwayFromZero dit is opgegeven, wordt -3 geretourneerd omdat het dichtstbijzijnde getal van nul is met een precisie van nul. Als ToEven dit is opgegeven, wordt -2 geretourneerd omdat het het dichtstbijzijnde even getal is met een precisie van nul.
| Oorspronkelijk nummer | 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 |
Gerichte afronding
Fields:
Een doelgerichte afrondingsbewerking neemt een oorspronkelijk getal met een impliciete of opgegeven precisie en geeft het eerstvolgende getal dat het dichtstbij ligt terug in een specifieke richting met dezelfde precisie als het oorspronkelijke getal. Gerichte modi op MidpointRounding bepalen naar welk vooraf gedefinieerd nummer de afronding wordt uitgevoerd.
In de volgende tabel ziet u de resultaten van het afronden van enkele negatieve en positieve getallen in combinatie met gerichte afrondingsmodi. De precisie die wordt gebruikt om de getallen af te ronden, is nul, wat betekent dat het getal vóór het decimaalteken wordt beïnvloed door de afrondingsbewerking.
| Oorspronkelijk nummer | 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 |