Round Method (Double)

# Math.Round Method (Double)

.NET Framework 1.1

Returns the whole number nearest the specified value.

```[Visual Basic]
Overloads Public Shared Function Round( _
ByVal a As Double _
) As Double
[C#]
public static double Round(
double a
);
[C++]
public: static double Round(
double a
);
[JScript]
public static function Round(
a : double
) : double;```

#### Parameters

a
A double-precision floating-point number to be rounded.

#### Return Value

The whole number nearest a. If a is halfway between two whole numbers, one of which by definition is even and the other odd, then the even number is returned.

#### Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding to nearest, or banker's rounding.

#### Example

The following code example demonstrates rounding to nearest whole number value.

```[Visual Basic]
Math.Round(4.4) 'Returns 4.0.
Math.Round(4.5) 'Returns 4.0.
Math.Round(4.6) 'Returns 5.0.

[C#]
Math.Round(4.4); //Returns 4.0.
Math.Round(4.5); //Returns 4.0.
Math.Round(4.6); //Returns 5.0.

[C++]

Math::Round(4.4); //Returns 4.0.
Math::Round(4.5); //Returns 4.0.
Math::Round(4.6); //Returns 5.0.

[JScript]
System.Math.Round(4.4) //Returns 4.0.
System.Math.Round(4.5) //Returns 4.0.
System.Math.Round(4.6) //Returns 5.0.
```

The following code sample uses Round to assist in the computation of the inner angles of a given trapezoid.

```[Visual Basic]
'The following class represents simple functionallity of the Trapezoid
Class MathTrapezoidSample

Private m_longBase As Double
Private m_shortBase As Double
Private m_leftLeg As Double
Private m_rightLeg As Double

Public Sub New(ByVal longbase As Double, ByVal shortbase As Double, ByVal leftLeg As Double, ByVal rightLeg As Double)
m_longBase = Math.Abs(longbase)
m_shortBase = Math.Abs(shortbase)
m_leftLeg = Math.Abs(leftLeg)
m_rightLeg = Math.Abs(rightLeg)
End Sub

Private Function GetRightSmallBase() As Double
GetRightSmallBase = (Math.Pow(m_rightLeg, 2) - Math.Pow(m_leftLeg, 2) + Math.Pow(m_longBase, 2) + Math.Pow(m_shortBase, 2) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase))
End Function

Public Function GetHeight() As Double
Dim x As Double = GetRightSmallBase()
GetHeight = Math.Sqrt(Math.Pow(m_rightLeg, 2) - Math.Pow(x, 2))
End Function

Public Function GetSquare() As Double
GetSquare = GetHeight() * m_longBase / 2
End Function

Dim sinX As Double = GetHeight() / m_leftLeg
End Function

Dim x As Double = GetRightSmallBase()
Dim cosX As Double = (Math.Pow(m_rightLeg, 2) + Math.Pow(x, 2) - Math.Pow(GetHeight(), 2)) / (2 * x * m_rightLeg)
End Function

Public Function GetLeftBaseDegreeAngle() As Double
Dim x As Double = GetLeftBaseRadianAngle() * 180 / Math.PI
GetLeftBaseDegreeAngle = Math.Round(x, 2)
End Function

Public Function GetRightBaseDegreeAngle() As Double
Dim x As Double = GetRightBaseRadianAngle() * 180 / Math.PI
GetRightBaseDegreeAngle = Math.Round(x, 2)
End Function

Public Shared Sub Main()
Dim trpz As MathTrapezoidSample = New MathTrapezoidSample(20, 10, 8, 6)
Console.WriteLine("The trpezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0")
Dim h As Double = trpz.GetHeight()
Console.WriteLine("Trapezoid height is: " + h.ToString())
Dim dxR As Double = trpz.GetLeftBaseRadianAngle()
Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians")
Dim dyR As Double = trpz.GetRightBaseRadianAngle()
Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians")
Dim dxD As Double = trpz.GetLeftBaseDegreeAngle()
Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees")
Dim dyD As Double = trpz.GetRightBaseDegreeAngle()
Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees")
End Sub

End Class

[C#]
/// <summary>
/// The following class represents simple functionallity of the Trapezoid
/// </summary>
class MathTrapezoidSample
{
private double m_longBase;
private double m_shortBase;
private double m_leftLeg;
private double m_rightLeg;

public MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg)
{
m_longBase = Math.Abs(longbase);
m_shortBase = Math.Abs(shortbase);
m_leftLeg = Math.Abs(leftLeg);
m_rightLeg = Math.Abs(rightLeg);
}

private double GetRightSmallBase()
{
return (Math.Pow(m_rightLeg,2.0) - Math.Pow(m_leftLeg,2.0) + Math.Pow(m_longBase,2.0) + Math.Pow(m_shortBase,2.0) - 2* m_shortBase * m_longBase)/ (2*(m_longBase - m_shortBase));
}

public double GetHeight()
{
double x = GetRightSmallBase();
return Math.Sqrt(Math.Pow(m_rightLeg,2.0) - Math.Pow(x,2.0));
}

public double GetSquare()
{
return GetHeight() * m_longBase / 2.0;
}

{
double sinX = GetHeight()/m_leftLeg;
return Math.Round(Math.Asin(sinX),2);
}

{
double x = GetRightSmallBase();
double cosX = (Math.Pow(m_rightLeg,2.0) + Math.Pow(x,2.0) - Math.Pow(GetHeight(),2.0))/(2*x*m_rightLeg);
return Math.Round(Math.Acos(cosX),2);
}

public double GetLeftBaseDegreeAngle()
{
double x = GetLeftBaseRadianAngle() * 180/ Math.PI;
return Math.Round(x,2);
}

public double GetRightBaseDegreeAngle()
{
double x = GetRightBaseRadianAngle() * 180/ Math.PI;
return Math.Round(x,2);
}

static void Main(string[] args)
{
MathTrapezoidSample trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0);
Console.WriteLine("The trpezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0");
double h = trpz.GetHeight();
Console.WriteLine("Trapezoid height is: " + h.ToString());
Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians");
Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians");
double dxD = trpz.GetLeftBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees");
double dyD = trpz.GetRightBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees");
}
}

[C++]
/// <summary>
/// The following class represents simple functionality of the Trapezoid
/// </summary>

public __gc class MathTrapezoidSample {
private:
double m_longBase;
double m_shortBase;
double m_leftLeg;
double m_rightLeg;

public:
MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg) {
m_longBase = Math::Abs(longbase);
m_shortBase = Math::Abs(shortbase);
m_leftLeg = Math::Abs(leftLeg);
m_rightLeg = Math::Abs(rightLeg);
}

private:
double GetRightSmallBase() {
return
( Math::Pow(m_rightLeg, 2.0)
- Math::Pow(m_leftLeg, 2.0)
+ Math::Pow(m_longBase, 2.0)
+ Math::Pow(m_shortBase, 2.0)
- 2* m_shortBase * m_longBase ) / (2*(m_longBase - m_shortBase));
}

public:
double GetHeight() {
double x = GetRightSmallBase();
return Math::Sqrt(Math::Pow(m_rightLeg, 2.0) - Math::Pow(x, 2.0));
}

double GetSquare() {
return GetHeight() * m_longBase / 2.0;
}

double sinX = GetHeight()/m_leftLeg;
return Math::Round(Math::Asin(sinX), 2);
}

double x = GetRightSmallBase();
double cosX =
(Math::Pow(m_rightLeg, 2.0) + Math::Pow(x, 2.0) - Math::Pow(GetHeight(), 2.0))
/ (2*x*m_rightLeg);
return Math::Round(Math::Acos(cosX), 2);
}

double GetLeftBaseDegreeAngle() {
double x = GetLeftBaseRadianAngle() * 180 / Math::PI;
return Math::Round(x, 2);
}

double GetRightBaseDegreeAngle() {
double x = GetRightBaseRadianAngle() * 180 / Math::PI;
return Math::Round(x, 2);
}
};

int main() {
MathTrapezoidSample* trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0);
Console::WriteLine(S"The trpezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0");

double h = trpz->GetHeight();
Console::WriteLine(S"Trapezoid height is: {0}", h.ToString());

Console::WriteLine(S"Trapezoid left base angle is: {0} Radians", dxR.ToString());

Console::WriteLine(S"Trapezoid right base angle is: {0} Radians", dyR.ToString());

double dxD = trpz->GetLeftBaseDegreeAngle();
Console::WriteLine(S"Trapezoid left base angle is: {0} Degrees", dxD.ToString());

double dyD = trpz->GetRightBaseDegreeAngle();
Console::WriteLine(S"Trapezoid left base angle is: {0} Degrees", dyD.ToString());
}
```

#### Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard