Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

MidpointRounding-Enumeration

 

Veröffentlicht: Oktober 2016

Gibt an, wie mathematische Rundungsmethoden eine Zahl verarbeiten sollen, die genau zwischen zwei Zahlen liegt.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public enum MidpointRounding

MembernameBeschreibung
AwayFromZero

Wenn eine Zahl genau zwischen zwei Zahlen liegt, wird sie auf die nächste größere Zahl aufgerundet.

ToEven

Wenn eine Zahl genau zwischen zwei Ganzzahlen liegt, wird sie auf die nächste gerade Ganzzahl gerundet.

Verwendung MidpointRounding mit entsprechenden Überladungen der Math.Round um mehr Kontrolle über die Rundung Prozess bereitzustellen.

Eine Rundung nimmt es sich um eine ursprüngliche Anzahl mit impliziten oder angegebene Genauigkeit; untersucht die nächste Ziffer, die am weiterhin Genauigkeit plus eins ist. und gibt die nächste Zahl mit der gleichen Genauigkeit als die ursprüngliche Nummer zurück. Für positive Zahlen ist die nächste Ziffer zwischen 0 und 4, die nächste Zahl in Richtung minus unendlich. Wenn die nächste Ziffer 6 bis 9 ist, wird die nächste Zahl in Richtung plus unendlich. Für negative Zahlen ist die nächste Ziffer zwischen 0 und 4, die nächste Zahl in Richtung plus unendlich. Wenn die nächste Ziffer 6 bis 9 ist, wird die nächste Zahl in Richtung minus unendlich.

In den vorherigen Fällen die MidpointRounding Enumeration wirkt sich nicht auf das Ergebnis der Rundung. Allerdings ist, wenn die nächste Ziffer 5 ist, also in der Mitte zwischen zwei möglichen Ergebnissen, und alle verbleibenden Ziffern 0 (null) oder keine verbleibenden Ziffern vorhanden sind, die nächste Zahl mehrdeutig. In diesem Fall die MidpointRounding -Enumeration können Sie angeben, ob die Rundungsvorgang die nächste Zahl Weg von 0 (null) oder die nächste gerade Zahl zurückgegeben.

Die folgende Tabelle enthält die Ergebnisse der negativen und positiven Zahlen in Verbindung mit den Werten der Abrundung MidpointRounding. Die Genauigkeit verwendet, um die Zahlen gerundet wird, ist 0 (null), d. h., nach dem Dezimaltrennzeichen auf den Rundungsvorgang. Beispielsweise ist die Ziffer nach dem Dezimaltrennzeichen für die Anzahl-2.5, 5. Da diese Ziffer in der Mitte liegt, können Sie eine MidpointRounding Wert, der das Ergebnis der Rundung zu bestimmen. Wenn AwayFromZero angegeben ist, wird-3 zurückgegeben, da es sich um die nächste Zahl Weg von 0 (null) mit einer Genauigkeit von 0 (null) ist. Wenn ToEven angegeben ist, wird-2 zurückgegeben, da es die nächste gerade Zahl mit einer Genauigkeit von 0 (null) ist.

Ursprüngliche Anzahl

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

Das folgende Codebeispiel veranschaulicht die Round Methode in Verbindung mit der MidpointRounding Enumeration.

// 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)

*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: