Math.Round Method (Double, MidpointRounding)
Rounds a double-precision floating-point value to the nearest integer. A parameter specifies how to round the value if it is midway between two numbers.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Double
A double-precision floating-point number to be rounded.
- mode
- Type: System.MidpointRounding
Specification for how to round value if it is midway between two other numbers.
Return Value
Type: System.DoubleThe integer nearest value. If value is halfway between two integers, one of which is even and the other odd, then mode determines which of the two is returned.
| Exception | Condition |
|---|---|
| ArgumentException | mode is not a valid value of System.MidpointRounding. |
Note |
|---|
For examples and comprehensive usage information about this and other overloads of the Round method, see the Round reference page. |
Because of the loss of precision that can result from representing decimal values as floating-point numbers or performing arithmetic operations on floating-point values, in some cases the Round(Double, MidpointRounding) method may not appear to round midpoint values to the nearest even integer. In the following example, because the floating-point value .1 has no finite binary representation, the first call to the Round(Double) method with a value of 11.5 returns 11 instead of 12.
using System; public class Example { public static void Main() { double value = 11.1; for (int ctr = 0; ctr <= 5; ctr++) value = RoundValueAndAdd(value); Console.WriteLine(); value = 11.5; RoundValueAndAdd(value); } private static double RoundValueAndAdd(double value) { Console.WriteLine("{0} --> {1}", value, Math.Round(value, MidpointRounding.AwayFromZero)); return value + .1; } } // The example displays the following output: // 11.1 --> 11 // 11.2 --> 11 // 11.3 --> 11 // 11.4 --> 11 // 11.5 --> 11 // 11.6 --> 12 // // 11.5 --> 12
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note