Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Enumerazione MidpointRounding

 

Data di pubblicazione: ottobre 2016

Specifica come i metodi matematici di arrotondamento debbano elaborare un numero che si trova a metà tra due numeri.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public enum MidpointRounding

Nome membroDescrizione
AwayFromZero

Quando un numero si trova a metà tra due numeri, viene arrotondato al numero più prossimo e più distante dallo zero.

ToEven

Quando un numero si trova a metà tra due numeri, viene arrotondato al numero pari più vicino.

Utilizzare MidpointRounding con overload appropriato del Math.Round per fornire maggiore controllo del processo di arrotondamento.

Un'operazione di arrotondamento accetta un numero originale con una precisione specificata o implicita; esamina la cifra successiva, ovvero che la precisione più uno. e restituisce il numero più vicino con la stessa precisione come il numero originale. Per i numeri positivi, se la cifra successiva è compreso tra 0 e 4, il numero più vicino è verso l'infinito negativo. Se la cifra successiva è da 6 a 9, il numero più vicino è verso l'infinito positivo. Per i numeri negativi, se la cifra successiva è compreso tra 0 e 4, il numero più vicino è verso l'infinito positivo. Se la cifra successiva è da 6 a 9, il numero più vicino è verso l'infinito negativo.

Nei casi precedenti, il MidpointRounding enumerazione non influisce sul risultato dell'operazione di arrotondamento. Tuttavia, se la cifra successiva è 5, che corrisponde al punto intermedio tra due possibili risultati, e tutte le cifre rimanenti sono zero o non vi sono cifre rimanenti, il numero più vicino è ambiguo. In questo caso, il MidpointRounding enumerazione consente di specificare se l'operazione di arrotondamento restituisce il numero più vicino lontano da zero o il numero pari più vicino.

Nella tabella seguente illustra i risultati dell'arrotondamento di alcuni numeri negativi e positivi in combinazione con i valori di MidpointRounding. La precisione utilizzata per arrotondare il numero è zero, ovvero il numero dopo il separatore decimale di influisce sull'operazione di arrotondamento. Ad esempio, per il numero -2,5, la cifra dopo il separatore decimale è 5. Poiché tale cifra rappresenta il punto centrale, è possibile utilizzare un MidpointRounding valore per determinare il risultato dell'arrotondamento. Se AwayFromZero viene specificato, verrà restituito -3 perché è il numero più vicino lontano da zero con una precisione pari a zero. Se ToEven viene specificato, verrà restituito -2 perché è il numero pari più vicino con una precisione pari a zero.

Numero originale

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

L'esempio di codice seguente illustra il Round metodo in combinazione con il MidpointRounding enumerazione.

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

*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: