Freigeben über


Enumeration System.MidpointRounding

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Verwenden Sie die MidpointRounding-Enumeration mit entsprechenden Überladungen von Math.Round, MathF.Round und Decimal.Round, um mehr Kontrolle über den Rundungsprozess bereitzustellen.

Es gibt zwei allgemeine Rundungsstrategien – rund um das nächste und gezielte Runden – und jedes Enumerationsfeld nimmt an genau einer dieser Strategien teil.

Rundung auf die nächste Zahl

Felder:

Bei einem Round-to-Nearest-Vorgang wird eine ursprüngliche Zahl mit impliziter oder angegebener Genauigkeit verwendet; untersucht die nächste Ziffer, die an dieser Genauigkeit plus eins liegt; und gibt die nächste Zahl mit der gleichen Genauigkeit wie die ursprüngliche Zahl zurück. Bei positiven Zahlen, wenn die nächste Ziffer zwischen 0 und 4 liegt, liegt die nächste Zahl in Richtung negative Unendlichkeit. Wenn die nächste Ziffer zwischen 6 und 9 liegt, ist die nächste Zahl in Richtung positive Unendlichkeit. Bei negativen Zahlen, wenn die nächste Ziffer zwischen 0 und 4 liegt, ist die nächste Zahl in Richtung positive Unendlichkeit. Wenn die nächste Ziffer zwischen 6 und 9 liegt, liegt die nächste Zahl in Richtung negative Unendlichkeit.

Wenn die nächste Ziffer zwischen 0 und 4 oder 6 bis 9 liegt, wirkt sich dies MidpointRounding.AwayFromZeroMidpointRounding.ToEven nicht auf das Ergebnis des Rundungsvorgangs aus. Wenn die nächste Ziffer jedoch 5 ist, der Mittelpunkt zwischen zwei möglichen Ergebnissen ist und alle verbleibenden Ziffern null sind oder keine verbleibenden Ziffern vorhanden sind, ist die nächste Zahl mehrdeutig. In diesem Fall können Sie mit den Rundung-zum-nächsten-Modi MidpointRounding angeben, ob der Rundungsvorgang die nächste Zahl weg von null oder die nächste gerade Zahl zurückgibt.

Die folgende Tabelle zeigt die Ergebnisse der Rundung einiger negativer und positiver Zahlen in Verbindung mit Rundungsmodi. Die Zum Runden der Zahlen verwendete Genauigkeit ist Null, was bedeutet, dass sich die Zahl nach dem Dezimalkomma auf den Rundungsvorgang auswirkt. Beispielsweise ist für die Zahl -2,5 die Ziffer nach dem Dezimalkomma 5. Da diese Ziffer der Mittelpunkt ist, können Sie einen MidpointRounding Wert verwenden, um das Ergebnis der Rundung zu bestimmen. Wenn AwayFromZero angegeben, wird -3 zurückgegeben, da es sich um die nächste Zahl von null mit einer Genauigkeit von Null handelt. Wenn ToEven angegeben, wird -2 zurückgegeben, da sie die nächste gerade Zahl mit einer Genauigkeit von Null ist.

Originalnummer 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

Gezielte Rundung

Felder:

Bei einem gerichtete Rundungsvorgang wird eine ursprüngliche Zahl mit impliziter oder angegebener Genauigkeit verwendet und die nächste nächste Zahl in einer bestimmten Richtung mit der gleichen Genauigkeit wie die ursprüngliche Zahl zurückgegeben. Gesteuerte Modi bei MidpointRounding, um zu steuern, auf welche vordefinierte Zahl gerundet wird.

Die folgende Tabelle zeigt die Ergebnisse der Rundung einiger negativer und positiver Zahlen in Verbindung mit gerichteten Rundungsmodi. Die Zum Runden der Zahlen verwendete Genauigkeit ist Null, was bedeutet, dass die Zahl vor dem Dezimalkomma durch den Rundungsvorgang beeinflusst wird.

Originalnummer 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