Condividi tramite


Enumerazione System.MidpointRounding

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Usare l'enumerazione MidpointRounding con overload appropriati di Math.Round, MathF.Rounde Decimal.Round per fornire un maggiore controllo del processo di arrotondamento.

Esistono due strategie generali di arrotondamento, arrotondamento più vicino e diretto, e ogni campo di enumerazione partecipa esattamente a una di queste strategie.

Arrotondare al più vicino

Campi:

Un'operazione round-to-near più vicina accetta un numero originale con una precisione implicita o specificata; esamina la cifra successiva, che corrisponde a quella precisione più uno; e restituisce il numero più vicino con la stessa precisione del numero originale. Per i numeri positivi, se la cifra successiva è compresa tra 0 e 4, il numero più vicino è verso l'infinito negativo. Se la cifra successiva è compresa tra 6 e 9, il numero più vicino è verso l'infinito positivo. Per i numeri negativi, se la cifra successiva è compresa tra 0 e 4, il numero più vicino è verso l'infinito positivo. Se la cifra successiva è compresa tra 6 e 9, il numero più vicino è verso l'infinito negativo.

Se la cifra successiva è compresa tra 0 e 4 o 6 o 9, e MidpointRounding.AwayFromZeroMidpointRounding.ToEven 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, le modalità round-to-near più vicine consentono MidpointRounding di specificare se l'operazione di arrotondamento restituisce il numero più vicino lontano da zero o dal numero pari più vicino.

La tabella seguente illustra i risultati dell'arrotondamento di alcuni numeri negativi e positivi in combinazione con le modalità round-to-near più vicine. La precisione utilizzata per arrotondare i numeri è zero, ovvero il numero dopo il separatore decimale influisce sull'operazione di arrotondamento. Ad esempio, per il numero -2,5, la cifra dopo il separatore decimale è 5. Poiché tale cifra è il punto intermedio, è possibile usare un MidpointRounding valore per determinare il risultato dell'arrotondamento. Se AwayFromZero viene specificato , viene restituito -3 perché è il numero più vicino a zero con una precisione pari a zero. Se ToEven viene specificato, viene 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

Arrotondamento diretto

Campi:

Un'operazione di arrotondamento diretto accetta un numero originale con una precisione implicita o specificata e restituisce il numero più vicino successivo in una direzione specifica con la stessa precisione del numero originale. Modalità dirette sul MidpointRounding controllo verso cui viene eseguito il numero predefinito di arrotondamento.

La tabella seguente illustra i risultati dell'arrotondamento di alcuni numeri negativi e positivi in combinazione con le modalità di arrotondamento diretto. La precisione utilizzata per arrotondare i numeri è zero, ovvero il numero prima che il separatore decimale sia interessato dall'operazione di arrotondamento.

Numero originale 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