# Math.Round Method (Double, MidpointRounding)

.NET Framework (current version)

Note

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

## Syntax

```public static double Round(
double value,
MidpointRounding mode
)
```

#### 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.Double

The 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.

## Exceptions

Exception Condition
ArgumentException

mode is not a valid value of System.MidpointRounding.

## Remarks

Note

For examples and comprehensive usage information about this and other overloads of the Round method, see the Round reference page.

## Notes to Callers:

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++)

Console.WriteLine();

value = 11.5;
}

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
```

## Version Information

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1