Arrotondare un valore decimale a 2 cifre decimali C#

  1. Programma C# per arrotondare un valore decimale a 2 posizioni decimali utilizzando il metodo decimal.Round()
  2. Programma C# per arrotondare un valore decimale a 2 posizioni decimali utilizzando il metodo Math.Round()

In C#, possiamo facilmente arrotondare un numero decimal utilizzando metodi diversi, ad esempio decimal.Round() e Math.Round().

Questo articolo si concentrerà sui metodi per arrotondare un valore mobile a 2 cifre decimali.

Programma C# per arrotondare un valore decimale a 2 posizioni decimali utilizzando il metodo decimal.Round()

Il metodo decimal.Round() è il metodo più semplice utilizzato per arrotondare un numero decimale a un numero di cifre specificato. Questo metodo consente fino a 28 posizioni decimali.

La sintassi corretta per utilizzare questo metodo è la seguente:

decimal.Round(decimalValueName, integerValue);

Codice di esempio:

using System;

public class RoundDecimal
{
    public static void Main()
    {
        decimal decimalValue = 123.456M;
        Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
        Console.WriteLine();
        decimalValue = decimal.Round(decimalValue, 2);
        Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
    }
}

Produzione:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

Questo metodo genera ArgumentOutOfRangeException se il valore intero che indica il numero di posizioni decimali da arrotondare non è compreso tra 0 e 28. Questa eccezione viene quindi gestita utilizzando un blocco try-catch.

C’è un altro modo per usare il metodo decimal.Round(), il codice di esempio è fornito di seguito:

Codice di esempio:

using System;

public class RoundDecimal
{
    public static void Main()
    {
        decimal decimalValue = 12.345M;
        Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
        Console.WriteLine();
        decimalValue = decimal.Round(decimalValue, 2, MidpointRounding.AwayFromZero);
        Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
    }
}

Produzione:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.35

MidpointRounding.AwayFromZero viene utilizzato per arrotondare il numero a partire da zero. La sua controparte è MidpointRounding.ToEven, che arrotonda il numero decimale specificato verso il suo numero pari più vicino.

Codice di esempio:

using System;

public class RoundDecimal
{
    public static void Main()
    {
        decimal decimalValue = 12.345M;
        Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
        Console.WriteLine();
        decimalValue = decimal.Round(decimalValue, 2, MidpointRounding.ToEven);
        Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
    }
}

Produzione:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.34

Programma C# per arrotondare un valore decimale a 2 posizioni decimali utilizzando il metodo Math.Round()

Il metodo Math.Round() è lo stesso del metodo decimal.Round() nella sua funzionalità.

La sintassi corretta per utilizzare questo metodo è la seguente:

Math.Round(decimalValueName, integerValue);

Codice di esempio:

using System;

public class RoundDecimal
{
    public static void Main()
    {
      decimal decimalValue = 123.456M;
        Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
        Console.WriteLine();
        decimalValue = Math.Round(decimalValue, 2);
        Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
    }
}

Produzione:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

Genera anche eccezioni proprio come il metodo decimal.Round(), che viene poi gestito usando il blocco try-catch. Potremmo anche specificare il metodo MidpointRounding come quello nel metodo decimal.Round().

Articolo correlato - Csharp Decimal

  • Float vs Double vs Decimal in C#