MidpointRounding Enumeration

Definition

Gibt an, wie mathematische Rundungsmethoden eine Zahl verarbeiten sollen, die genau zwischen zwei Zahlen liegt.Specifies how mathematical rounding methods should process a number that is midway between two numbers.

public enum class MidpointRounding
[System.Runtime.InteropServices.ComVisible(true)]
public enum MidpointRounding
type MidpointRounding = 
Public Enum MidpointRounding
Vererbung
MidpointRounding
Attribute

Felder

AwayFromZero 1

Wenn eine Zahl genau zwischen zwei Ganzzahlen liegt, wird sie auf die nächste größere Ganzzahl aufgerundet.When a number is halfway between two others, it is rounded toward the nearest number that is away from zero.

ToEven 0

Wenn eine Zahl genau zwischen zwei Ganzzahlen liegt, wird sie auf die nächste kleinere Ganzzahl abgerundet.When a number is halfway between two others, it is rounded toward the nearest even number.

ToNegativeInfinity 3

Wenn eine Zahl in der Mitte zwischen zwei anderen liegt, wird sie zum nächstgelegenen Ergebnis gerundet, jedoch keinesfalls größer als das Ergebnis mit unendlicher Genauigkeit.When a number is halfway between two others, it is rounded toward the result closest to and no greater than the infinitely precise result.

ToPositiveInfinity 4

Wenn eine Zahl in der Mitte zwischen zwei anderen liegt, wird sie zum nächstgelegenen Ergebnis gerundet, jedoch keinesfalls kleiner als das Ergebnis mit unendlicher Genauigkeit.When a number is halfway between two others, it is rounded toward the result closest to and no less than the infinitely precise result.

ToZero 2

Wenn eine Zahl in der Mitte zwischen zwei anderen liegt, wird sie zum nächstgelegenen Ergebnis gerundet, jedoch keinesfalls größer in der Magnitude als das Ergebnis mit unendlicher Genauigkeit.When a number is halfway between two others, it is rounded toward the result closest to and no greater in magnitude than the infinitely precise result.

Beispiele

Im folgenden Beispiel wird die Math.Round -Methode in Verbindung mit MidpointRounding der-Enumeration veranschaulicht:The following example demonstrates the Math.Round method in conjunction with the MidpointRounding enumeration:

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

void main()
{
    Decimal result = (Decimal) 0.0;
    Decimal posValue = (Decimal) 3.45;
    Decimal negValue = (Decimal) -3.45;

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

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

*/
' This example demonstrates the Math.Round() method in conjunction 
' with the MidpointRounding enumeration.
Class Sample
    Public Shared Sub Main() 
        Dim result As Decimal = 0D
        Dim posValue As Decimal = 3.45D
        Dim negValue As Decimal = -3.45D
        
        ' 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()
    
    End Sub
End Class
'
'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)
'

Hinweise

Verwenden MidpointRounding Sie mit entsprechenden über Ladungen Math.Round von, um eine bessere Kontrolle über den Rundungs Vorgang bereitzustellen.Use MidpointRounding with appropriate overloads of Math.Round to provide more control of the rounding process.

Bei einem Rundungs Vorgang wird eine ursprüngliche Zahl mit impliziter oder angegebener Genauigkeit benötigt. untersucht die nächste Ziffer mit dieser Genauigkeit Plus 1. und gibt die nächste Zahl mit derselben Genauigkeit wie die ursprüngliche Zahl zurück.A rounding operation takes an original number with an implicit or specified precision; examines the next digit, which is at that precision plus one; and returns the nearest number with the same precision as the original number. Wenn die nächste Ziffer zwischen 0 und 4 liegt, liegt die nächste Zahl in Richtung minus unendlich.For positive numbers, if the next digit is from 0 through 4, the nearest number is toward negative infinity. Wenn die nächste Ziffer von 6 bis 9 liegt, liegt die nächste Zahl in Richtung positiv unendlich.If the next digit is from 6 through 9, the nearest number is toward positive infinity. Wenn die nächste Ziffer zwischen 0 und 4 liegt, liegt die nächste Zahl in Richtung minus unendlich.For negative numbers, if the next digit is from 0 through 4, the nearest number is toward positive infinity. Wenn die nächste Ziffer von 6 bis 9 liegt, liegt die nächste Zahl in Richtung minus unendlich.If the next digit is from 6 through 9, the nearest number is toward negative infinity.

In den vorherigen Fällen wirkt sich MidpointRounding die-Enumeration nicht auf das Ergebnis der Rundungs Operation aus.In the previous cases, the MidpointRounding enumeration does not affect the result of the rounding operation. Wenn die nächste Ziffer jedoch 5 ist, d. h. der Mittelpunkt zwischen zwei möglichen Ergebnissen, und alle verbleibenden Ziffern 0 (null) sind oder keine verbleibenden Ziffern vorhanden sind, ist die nächstgelegene Zahl mehrdeutig.However, if the next digit is 5, which is the midpoint between two possible results, and all remaining digits are zero or there are no remaining digits, the nearest number is ambiguous. In diesem Fall können Sie MidpointRounding mit der-Enumeration angeben, ob der Rundungs Vorgang die nächstgelegene Zahl von 0 (null) oder die nächstliegende gerade Zahl zurückgibt.In this case, the MidpointRounding enumeration enables you to specify whether the rounding operation returns the nearest number away from zero or the nearest even number.

In der folgenden Tabelle werden die Ergebnisse der Rundung einiger negativer und positiver Zahlen in Verbindung mit den MidpointRoundingWerten von veranschaulicht.The following table demonstrates the results of rounding some negative and positive numbers in conjunction with the values of MidpointRounding. Die zum Runden der Zahlen verwendete Genauigkeit ist 0 (null), was bedeutet, dass sich die Zahl nach dem Dezimaltrennzeichen auf den Rundungs Vorgang auswirkt.The precision used to round the numbers is zero, which means the number after the decimal point affects the rounding operation. Beispielsweise ist für die Zahl-2,5 die Ziffer nach dem Dezimaltrennzeichen 5.For example, for the number -2.5, the digit after the decimal point is 5. Da diese Ziffer der Mittelpunkt ist, können Sie einen MidpointRounding Wert verwenden, um das Ergebnis der Rundung zu bestimmen.Because that digit is the midpoint, you can use a MidpointRounding value to determine the result of rounding. Wenn AwayFromZero angegeben wird, wird-3 zurückgegeben, da es sich um die nächstgelegene Zahl von NULL mit einer Genauigkeit von 0 (null) handelt.If AwayFromZero is specified, -3 is returned because it is the nearest number away from zero with a precision of zero. Wenn ToEven angegeben wird, wird-2 zurückgegeben, da es sich um die nächstliegende gerade Zahl mit einer Genauigkeit von 0 (null) handelt.If ToEven is specified, -2 is returned because it is the nearest even number with a precision of zero.

Ursprüngliche NummerOriginal number AwayFromZeroAwayFromZero SelbstToEven
3.53.5 44 44
2.82.8 33 33
2.52.5 33 22
2.12.1 22 22
-2.1-2.1 -2-2 -2-2
-2.5-2.5 -3-3 -2-2
-2.8-2.8 -3-3 -3-3
-3.5-3.5 -4-4 -4-4

Gilt für: