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

Metodo Decimal.Round (Decimal, Int32, MidpointRounding)

 

Data di pubblicazione: ottobre 2016

Arrotonda un valore decimale a una precisione specificata. Un parametro specifica come arrotondare il valore se si trova a metà tra due numeri.

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

public static decimal Round(
	decimal d,
	int decimals,
	MidpointRounding mode
)

Parametri

d
Type: System.Decimal

Numero decimale da arrotondare.

decimals
Type: System.Int32

Numero di posizioni decimali significative (precisione) nel valore restituito.

mode
Type: System.MidpointRounding

Valore che specifica come arrotondare d se si trova a metà tra due numeri.

Valore restituito

Type: System.Decimal

Numero più vicino al parametro d con una precisione pari al parametro decimals. Se d è a metà tra due numeri interi, di cui per definizione uno è pari e l'altro dispari, il parametro mode determina quale dei due numeri deve essere restituito. Se la precisione di d è minore di decimals, d verrà restituito invariato.

Exception Condition
ArgumentOutOfRangeException

decimals è minore di 0 o maggiore di 28.

ArgumentException

mode non è un valore di System.MidpointRounding.

OverflowException

Il risultato non è compreso nell'intervallo di un oggetto Decimal.

Il decimals parametro specifica il numero di posizioni decimali significative nel valore restituito e compreso tra 0 e 28. Se decimals è zero, viene restituito un numero intero.

In un valore medio, il valore dopo la cifra meno significativo del risultato è esattamente metà tra due numeri. Ad esempio, 3.47500 è un valore medio se deve essere arrotondato a due cifre decimali e 7.500 è un valore medio se deve essere arrotondato all'intero. In questi casi, il valore più vicino facilmente identificabili senza una convenzione di arrotondamento, specificata da di mode argomento. Il Round(Decimal, Int32, MidpointRounding) metodo supporta due convenzioni di arrotondamento per la gestione dei valori di punto centrale.

Arrotondamento lontano da zero.

Punto centrale valori vengono arrotondati al numero successivo lontano da zero. Ad esempio, consente di arrotondare 3,75 a 3.8, 3,85 arrotonda al 3.9,-3.75 viene arrotondato a-3.8, e-3.85 viene arrotondato a-3.9. Questa modalità di arrotondamento è rappresentata dal MidpointRounding.AwayFromZero membro di enumerazione.

Arrotondamento lontano da zero è il form più noto di arrotondamento.

Arrotondamento per anche o arrotondamento

Punto centrale valori vengono arrotondati al numero pari più vicino. Ad esempio, 3,75 sia 3.85 arrotondare 3.8 e-3.75 sia-3.85 arrotondare-3.8. Questa modalità di arrotondamento è rappresentata dal MidpointRounding.ToEven membro di enumerazione.

Al valore più vicino è il formato standard di arrotondamento utilizzato nelle operazioni finanziarie e statistiche. È conforme allo Standard IEEE 754, sezione 4. Quando utilizzato in più operazioni di arrotondamento, riduce l'errore di arrotondamento causato da valori punto intermedio in un'unica direzione di arrotondamento coerente. In alcuni casi, l'errore di arrotondamento può essere significativo.

Nell'esempio seguente viene illustrato come utilizzare il Round(Decimal, Int32, MidpointRounding) metodo 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)

*/

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: