Arredondar um valor decimal para 2 casas decimais C#

  1. C# Programa para arredondar um valor Decimal para 2 casas decimais Utilizando decimal.Round() Método
  2. C# Programa para arredondar um valor decimal para 2 casas decimais, utilizando Math.Round() Método

Em C#, podemos facilmente arredondar um número decimal utilizando diferentes métodos, por exemplo, decimal.Round() e Math.Round().

Este artigo focalizará os métodos de arredondamento de um valor flutuante para 2 casas decimais.

C# Programa para arredondar um valor Decimal para 2 casas decimais Utilizando decimal.Round() Método

O método decimal.Round() é o método mais simples que é utilizado para arredondar um número decimal para um número especificado de dígitos. Este método permite até 28 casas decimais.

A sintaxe correta para utilizar este método é a seguinte:

decimal.Round(decimalValueName, integerValue);

Exemplo de código:

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);
    }
}

Resultado:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

Este método lança ArgumentOutOfRangeException se o valor integer que indica o número de casas decimais a arredondar não estiver em um intervalo de 0-28. Esta exception é então manipulada utilizando um bloco de try-catch.

Há outra maneira de utilizar o método decimal.Round(), o código de exemplo é dado abaixo:

Exemplo de código:

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);
    }
}

Resultado:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.35

MidpointRounding.AwayFromZero é utilizado para arredondar o número a partir de zero. Sua contraparte é MidpointRounding.ToEven, que arredonda o número decimal dado para o número par mais próximo.

Exemplo de código:

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);
    }
}

Resultado:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.34

C# Programa para arredondar um valor decimal para 2 casas decimais, utilizando Math.Round() Método

O método Math.Round() é o mesmo que o método decimal.Round() em sua funcionalidade.

A sintaxe correta para utilizar este método é a seguinte:

Math.Round(decimalValueName, integerValue);

Exemplo de código:

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);
    }
}

Resultado:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

Ele também lança exception assim como o método decimal.Round(), que é então manipulado utilizando o bloco try-catch. Também poderíamos especificar o método MidpointRounding como o método decimal.Round().

Artigo relacionado - Csharp Decimal

  • Float vs Double vs Decimal em C#