Decimal.Round Method (Decimal, Int32)
Rounds a Decimal value to a specified number of decimal places.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- d
-
Type:
System.Decimal
A decimal number to round.
- decimals
-
Type:
System.Int32
A value from 0 to 28 that specifies the number of decimal places to round to.
Return Value
Type: System.DecimalThe decimal number equivalent to d rounded to decimals number of decimal places.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | decimals is not a value from 0 to 28. |
This method is equivalent to calling the Round(Decimal, Int32, MidpointRounding) method with a mode argument of MidpointRounding.ToEven.When d is exactly halfway between two rounded values, the result is the rounded value that has an even digit in the far right decimal position. For example, when rounded to two decimals, the value 2.345 becomes 2.34 and the value 2.355 becomes 2.36. This process is known as rounding toward even, or banker's rounding. It minimizes rounding errors that result from consistently rounding a midpoint value in a single direction.
The following example rounds several Decimal values to a specified number of decimal places using the Round method.
using System; class Example { public static void Main() { // Define a set of Decimal values. decimal[] values = { 1.45m, 1.55m, 123.456789m, 123.456789m, 123.456789m, -123.456m, new Decimal(1230000000, 0, 0, true, 7 ), new Decimal(1230000000, 0, 0, true, 7 ), -9999999999.9999999999m, -9999999999.9999999999m }; // Define a set of integers to for decimals argument. int[] decimals = { 1, 1, 4, 6, 8, 0, 3, 11, 9, 10}; Console.WriteLine("{0,26}{1,8}{2,26}", "Argument", "Digits", "Result" ); Console.WriteLine("{0,26}{1,8}{2,26}", "--------", "------", "------" ); for (int ctr = 0; ctr < values.Length; ctr++) Console.WriteLine("{0,26}{1,8}{2,26}", values[ctr], decimals[ctr], Decimal.Round(values[ctr], decimals[ctr])); } } // The example displays the following output: // Argument Digits Result // -------- ------ ------ // 1.45 1 1.4 // 1.55 1 1.6 // 123.456789 4 123.4568 // 123.456789 6 123.456789 // 123.456789 8 123.456789 // -123.456 0 -123 // -123.0000000 3 -123.000 // -123.0000000 11 -123.0000000 // -9999999999.9999999999 9 -10000000000.000000000 // -9999999999.9999999999 10 -9999999999.9999999999
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0