How to Round a Decimal Value to 2 Decimal Places C#

Minahil Noor Feb 16, 2024
  1. C# Program to Round a Decimal Value to 2 Decimal Places Using decimal.Round() Method
  2. C# Program to Round a Decimal Value to 2 Decimal Places Using Math.Round() Method
How to Round a Decimal Value to 2 Decimal Places C#

In C#, we can easily round off a decimal number using different methods, for example, decimal.Round() and Math.Round().

This article will focus on the methods to round a floating value to 2 decimal places.

C# Program to Round a Decimal Value to 2 Decimal Places Using decimal.Round() Method

The method decimal.Round() is the simplest method that is used to round off a decimal number to a specified number of digits. This method allows up to 28 decimal places.

The correct syntax to use this method is as follows:

decimal.Round(decimalValueName, integerValue);

Example Code:

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

Output:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

This method throws ArgumentOutOfRangeException if the integer value that tells the number of decimal places to round is not in a range of 0-28. This exception is then handled by using a try-catch block.

There is another way to use decimal.Round() method, example code is given below:

Example Code:

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

Output:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.35

MidpointRounding.AwayFromZero is used to round the number away from zero. Its counterpart is MidpointRounding.ToEven, which rounds the given decimal number towards its nearest even number.

Example Code:

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

Output:

The Decimal Value Before Applying Method: 12.345

The Decimal Value After Applying Method: 12.34

C# Program to Round a Decimal Value to 2 Decimal Places Using Math.Round() Method

The method Math.Round() is the same as the decimal.Round() method in its functionality.

The correct syntax to use this method is as follows:

Math.Round(decimalValueName, integerValue);

Example Code:

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

Output:

The Decimal Value Before Applying Method: 123.456

The Decimal Value After Applying Method: 123.46

It also throws exceptions just like the decimal.Round() method, which is then handled using the try-catch block. We could also specify the MidpointRounding method as that in decimal.Round() method.

Related Article - Csharp Decimal