# Decimal.RoundDecimal.RoundDecimal.RoundDecimal.Round Method

## オーバーロード

 Round(Decimal) Round(Decimal) Round(Decimal) Round(Decimal) 10 進値を最も近い整数に丸めます。Rounds a decimal value to the nearest integer. Round(Decimal, Int32) Round(Decimal, Int32) Round(Decimal, Int32) Round(Decimal, Int32) Decimal 値を、指定した小数点以下の桁数に丸めます。Rounds a Decimal value to a specified number of decimal places. Round(Decimal, MidpointRounding) Round(Decimal, MidpointRounding) Round(Decimal, MidpointRounding) Round(Decimal, MidpointRounding) 10 進値を最も近い整数に丸めます。Rounds a decimal value to the nearest integer. パラメーターは、値が他の 2 つの数値の中間にある場合にその値を丸める方法を指定します。A parameter specifies how to round the value if it is midway between two other numbers. Round(Decimal, Int32, MidpointRounding) Round(Decimal, Int32, MidpointRounding) Round(Decimal, Int32, MidpointRounding) Round(Decimal, Int32, MidpointRounding) 10 進値を指定した精度に丸めます。Rounds a decimal value to a specified precision. パラメーターは、値が他の 2 つの数値の中間にある場合にその値を丸める方法を指定します。A parameter specifies how to round the value if it is midway between two other numbers.

## Round(Decimal)Round(Decimal)Round(Decimal)Round(Decimal)

10 進値を最も近い整数に丸めます。Rounds a decimal value to the nearest integer.

``````public:
static System::Decimal Round(System::Decimal d);``````
``public static decimal Round (decimal d);``
``static member Round : decimal -> decimal``
``Public Shared Function Round (d As Decimal) As Decimal``

#### パラメーター

d
Decimal Decimal Decimal Decimal

#### 戻り値

`d` パラメーターの値に最も近い整数。The integer that is nearest to the `d` parameter. `d` が 2 つの整数 (一方が偶数でもう一方が奇数) の中間にある場合は偶数が返されます。If `d` is halfway between two integers, one of which is even and the other odd, the even number is returned.

### 例

``````using System;

public class Example
{
public static void Main()
{
for (decimal value = 100m; value <= 102m; value += .1m)
Console.WriteLine("{0} --> {1}", value, Decimal.Round(value));

}
}
// The example displays the following output:
//     100 --> 100
//     100.1 --> 100
//     100.2 --> 100
//     100.3 --> 100
//     100.4 --> 100
//     100.5 --> 100
//     100.6 --> 101
//     100.7 --> 101
//     100.8 --> 101
//     100.9 --> 101
//     101.0 --> 101
//     101.1 --> 101
//     101.2 --> 101
//     101.3 --> 101
//     101.4 --> 101
//     101.5 --> 102
//     101.6 --> 102
//     101.7 --> 102
//     101.8 --> 102
//     101.9 --> 102
//     102.0 --> 102
``````
``````Module Example
Public Sub Main()
For value As Decimal = 100d To 102d Step .1d
Console.WriteLine("{0} --> {1}", value, Decimal.Round(value))
Next
End Sub
End Module
' The example displays the following output:
'     100 --> 100
'     100.1 --> 100
'     100.2 --> 100
'     100.3 --> 100
'     100.4 --> 100
'     100.5 --> 100
'     100.6 --> 101
'     100.7 --> 101
'     100.8 --> 101
'     100.9 --> 101
'     101.0 --> 101
'     101.1 --> 101
'     101.2 --> 101
'     101.3 --> 101
'     101.4 --> 101
'     101.5 --> 102
'     101.6 --> 102
'     101.7 --> 102
'     101.8 --> 102
'     101.9 --> 102
'     102.0 --> 102
``````

### 注釈

このメソッドの動作では、IEEE Standard 754、セクション 4 に従います。The behavior of this method follows IEEE Standard 754, section 4. このような丸めと呼びます半分もラウンドまたは銀行型丸めします。This kind of rounding is sometimes called round half to even or banker's rounding. 常に中間値を 1 つの方向に丸めるから発生する丸め誤差が最小限に抑えます。It minimizes rounding errors that result from consistently rounding a midpoint value in a single direction. 呼び出すことと同じである、Round(Decimal, MidpointRounding)メソッドを`mode`の引数MidpointRounding.ToEvenします。It is equivalent to calling the Round(Decimal, MidpointRounding) method with a `mode` argument of MidpointRounding.ToEven.

こちらもご覧ください

## Round(Decimal, Int32)Round(Decimal, Int32)Round(Decimal, Int32)Round(Decimal, Int32)

Decimal 値を、指定した小数点以下の桁数に丸めます。Rounds a Decimal value to a specified number of decimal places.

``````public:
static System::Decimal Round(System::Decimal d, int decimals);``````
``public static decimal Round (decimal d, int decimals);``
``static member Round : decimal * int -> decimal``
``Public Shared Function Round (d As Decimal, decimals As Integer) As Decimal``

#### パラメーター

d
Decimal Decimal Decimal Decimal

decimals
Int32 Int32 Int32 Int32

#### 例外

`decimals` は、0 から 28 までの値ではありません。`decimals` is not a value from 0 to 28.

### 例

``````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
``````
``````Public Module Example
Public Sub Main()
' Define a set of Decimal values.
Dim values() As Decimal = { 1.45d, 1.55d, 123.456789d, 123.456789d,
123.456789d, -123.456d,
New Decimal(1230000000, 0, 0, true, 7 ),
New Decimal(1230000000, 0, 0, true, 7 ),
-9999999999.9999999999d,
-9999999999.9999999999d }
' Define a set of integers to for decimals argument.
Dim decimals() As Integer = { 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 ctr As Integer = 0 To values.Length - 1
Console.WriteLine("{0,26}{1,8}{2,26}",
values(ctr), decimals(ctr),
Decimal.Round(values(ctr), decimals(ctr)))
Next
End Sub
End Module
' 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
``````

### 注釈

このメソッドを呼び出すことは、Round(Decimal, Int32, MidpointRounding)メソッドを`mode`の引数MidpointRounding.ToEvenします。ときに`d`ちょうど中間には、結果は、偶数桁の小数部の右端の位置に丸められた値を 2 つの丸められた値。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. たとえば、小数点以下 2 桁に丸められる場合、値 2.345 は 2.34 になり、値 2.355 は 2.36 になります。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. 常に中間値を 1 つの方向に丸めるから発生する丸め誤差が最小限に抑えます。It minimizes rounding errors that result from consistently rounding a midpoint value in a single direction.

こちらもご覧ください

## Round(Decimal, MidpointRounding)Round(Decimal, MidpointRounding)Round(Decimal, MidpointRounding)Round(Decimal, MidpointRounding)

10 進値を最も近い整数に丸めます。Rounds a decimal value to the nearest integer. パラメーターは、値が他の 2 つの数値の中間にある場合にその値を丸める方法を指定します。A parameter specifies how to round the value if it is midway between two other numbers.

``````public:
static System::Decimal Round(System::Decimal d, MidpointRounding mode);``````
``public static decimal Round (decimal d, MidpointRounding mode);``
``static member Round : decimal * MidpointRounding -> decimal``
``Public Shared Function Round (d As Decimal, mode As MidpointRounding) As Decimal``

#### パラメーター

d
Decimal Decimal Decimal Decimal

mode
MidpointRounding MidpointRounding MidpointRounding MidpointRounding

`d` が他の 2 つの数値の中間にある場合に丸める方法を指定する値。A value that specifies how to round `d` if it is midway between two other numbers.

#### 戻り値

`d` パラメーターの値に最も近い整数。The integer that is nearest to the `d` parameter. `d` が 2 つの数値 (一方が偶数でもう一方が奇数) の中間にある場合、`mode` パラメーターで 2 つの数値のどちらを返すかを決定します。If `d` is halfway between two numbers, one of which is even and the other odd, the `mode` parameter determines which of the two numbers is returned.

#### 例外

`mode`MidpointRounding 値ではありません。`mode` is not a MidpointRounding value.

### 例

``````using System;

public class Example
{
public static void Main()
{
Console.WriteLine("{0,-10} {1,-10} {2,-10} {3,-15}", "Value", "Default",
"ToEven", "AwayFromZero");
for (decimal value = 12.0m; value <= 13.0m; value += 0.1m)
Console.WriteLine("{0,-10} {1,-10} {2,-10} {3,-15}",
value, Math.Round(value),
Math.Round(value, MidpointRounding.ToEven),
Math.Round(value, MidpointRounding.AwayFromZero));
}
}
// The example displays the following output:
//       Value      Default    ToEven     AwayFromZero
//       12         12         12         12
//       12.1       12         12         12
//       12.2       12         12         12
//       12.3       12         12         12
//       12.4       12         12         12
//       12.5       12         12         13
//       12.6       13         13         13
//       12.7       13         13         13
//       12.8       13         13         13
//       12.9       13         13         13
//       13.0       13         13         13
``````
``````Module Example
Public Sub Main()
Console.WriteLine("{0,-10} {1,-10} {2,-10} {3,-15}", "Value", "Default",
"ToEven", "AwayFromZero")
For value As Decimal = 12.0d To 13.0d Step .1d
Console.WriteLine("{0,-10} {1,-10} {2,-10} {3,-15}",
value, Math.Round(value),
Math.Round(value, MidpointRounding.ToEven),
Math.Round(value, MidpointRounding.AwayFromZero))
Next
End Sub
End Module
' The example displays the following output:
'       Value      Default    ToEven     AwayFromZero
'       12         12         12         12
'       12.1       12         12         12
'       12.2       12         12         12
'       12.3       12         12         12
'       12.4       12         12         12
'       12.5       12         12         13
'       12.6       13         13         13
'       12.7       13         13         13
'       12.8       13         13         13
'       12.9       13         13         13
'       13.0       13         13         13
``````

### 注釈

ゼロから離れる方向に丸め処理します。Rounding away from zero.

ゼロから離れる方向に丸め処理は、丸め処理の最もよく知られた形式です。Rounding away from zero is the most widely known form of rounding.

こちらもご覧ください

## Round(Decimal, Int32, MidpointRounding)Round(Decimal, Int32, MidpointRounding)Round(Decimal, Int32, MidpointRounding)Round(Decimal, Int32, MidpointRounding)

10 進値を指定した精度に丸めます。Rounds a decimal value to a specified precision. パラメーターは、値が他の 2 つの数値の中間にある場合にその値を丸める方法を指定します。A parameter specifies how to round the value if it is midway between two other numbers.

``````public:
static System::Decimal Round(System::Decimal d, int decimals, MidpointRounding mode);``````
``public static decimal Round (decimal d, int decimals, MidpointRounding mode);``
``static member Round : decimal * int * MidpointRounding -> decimal``
``Public Shared Function Round (d As Decimal, decimals As Integer, mode As MidpointRounding) As Decimal``

#### パラメーター

d
Decimal Decimal Decimal Decimal

decimals
Int32 Int32 Int32 Int32

mode
MidpointRounding MidpointRounding MidpointRounding MidpointRounding

`d` が他の 2 つの数値の中間にある場合に丸める方法を指定する値。A value that specifies how to round `d` if it is midway between two other numbers.

#### 戻り値

`decimals` パラメーターと精度が等価である `d` パラメーターの値に最も近い数値。The number that is nearest to the `d` parameter with a precision equal to the `decimals` parameter. `d` が 2 つの数値 (一方が偶数でもう一方が奇数) の中間にある場合、`mode` パラメーターで 2 つの数値のどちらを返すかを決定します。If `d` is halfway between two numbers, one of which is even and the other odd, the `mode` parameter determines which of the two numbers is returned. `d` の精度が `decimals` より小さい場合、`d` は変更されずに返されます。If the precision of `d` is less than `decimals`, `d` is returned unchanged.

#### 例外

`decimals` が 0 未満か、28 を超えています。`decimals` is less than 0 or greater than 28.

`mode`MidpointRounding 値ではありません。`mode` is not a MidpointRounding value.

### 例

``````// This example demonstrates the Math.Round() method in conjunction
// with the MidpointRounding enumeration.
using namespace System;

void main()
{
Decimal result = (Decimal) 0.0;
Decimal posValue = (Decimal) 3.45;
Decimal negValue = (Decimal) -3.45;

// By default, round a positive and a negative value to the nearest
// even number. The precision of the result is 1 decimal place.
result = Math::Round(posValue, 1);
Console::WriteLine("{0,4} = Math.Round({1,5}, 1)", result, posValue);
result = Math::Round(negValue, 1);
Console::WriteLine("{0,4} = Math.Round({1,5}, 1)", result, negValue);
Console::WriteLine();

// Round a positive value to the nearest even number, then to the
// nearest number away from zero. The precision of the result is 1
// decimal place.
result = Math::Round(posValue, 1, MidpointRounding::ToEven);
Console::WriteLine(
"{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)",
result, posValue);
result = Math::Round(posValue, 1, MidpointRounding::AwayFromZero);
Console::WriteLine(
"{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)",
result, posValue);
Console::WriteLine();

// Round a negative value to the nearest even number, then to the
// nearest number away from zero. The precision of the result is 1
// decimal place.
result = Math::Round(negValue, 1, MidpointRounding::ToEven);
Console::WriteLine(
"{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)",
result, negValue);
result = Math::Round(negValue, 1, MidpointRounding::AwayFromZero);
Console::WriteLine(
"{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)",
result, negValue);
Console::WriteLine();
}

/*
This code example produces the following results:

3.4 = Math.Round( 3.45, 1)
-3.4 = Math.Round(-3.45, 1)

3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

*/
``````
``````// This example demonstrates the Math.Round() method in conjunction
// with the MidpointRounding enumeration.
using System;

class Sample
{
public static void Main()
{
decimal result = 0.0m;
decimal posValue =  3.45m;
decimal negValue = -3.45m;

// By default, round a positive and a negative value to the nearest even number.
// The precision of the result is 1 decimal place.

result = Math.Round(posValue, 1);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, posValue);
result = Math.Round(negValue, 1);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, negValue);
Console.WriteLine();

// Round a positive value to the nearest even number, then to the nearest number away from zero.
// The precision of the result is 1 decimal place.

result = Math.Round(posValue, 1, MidpointRounding.ToEven);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, posValue);
result = Math.Round(posValue, 1, MidpointRounding.AwayFromZero);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, posValue);
Console.WriteLine();

// Round a negative value to the nearest even number, then to the nearest number away from zero.
// The precision of the result is 1 decimal place.

result = Math.Round(negValue, 1, MidpointRounding.ToEven);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", result, negValue);
result = Math.Round(negValue, 1, MidpointRounding.AwayFromZero);
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", result, negValue);
Console.WriteLine();
}
}
/*
This code example produces the following results:

3.4 = Math.Round( 3.45, 1)
-3.4 = Math.Round(-3.45, 1)

3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)

-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)

*/
``````
``````' This example demonstrates the Math.Round() method in conjunction
' with the MidpointRounding enumeration.
Imports System

Class Sample
Public Shared Sub Main()
Dim result As Decimal = 0D
Dim posValue As Decimal = 3.45D
Dim negValue As Decimal = -3.45D

' By default, round a positive and a negative value to the nearest even number.
' The precision of the result is 1 decimal place.
result = Math.Round(posValue, 1)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, posValue)
result = Math.Round(negValue, 1)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1)", result, negValue)
Console.WriteLine()

' Round a positive value to the nearest even number, then to the nearest number
' away from zero. The precision of the result is 1 decimal place.
result = Math.Round(posValue, 1, MidpointRounding.ToEven)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", _
result, posValue)
result = Math.Round(posValue, 1, MidpointRounding.AwayFromZero)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", _
result, posValue)
Console.WriteLine()

' Round a negative value to the nearest even number, then to the nearest number
' away from zero. The precision of the result is 1 decimal place.
result = Math.Round(negValue, 1, MidpointRounding.ToEven)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.ToEven)", _
result, negValue)
result = Math.Round(negValue, 1, MidpointRounding.AwayFromZero)
Console.WriteLine("{0,4} = Math.Round({1,5}, 1, MidpointRounding.AwayFromZero)", _
result, negValue)
Console.WriteLine()

End Sub 'Main
End Class 'Sample
'
'This code example produces the following results:
'
' 3.4 = Math.Round( 3.45, 1)
'-3.4 = Math.Round(-3.45, 1)
'
' 3.4 = Math.Round( 3.45, 1, MidpointRounding.ToEven)
' 3.5 = Math.Round( 3.45, 1, MidpointRounding.AwayFromZero)
'
'-3.4 = Math.Round(-3.45, 1, MidpointRounding.ToEven)
'-3.5 = Math.Round(-3.45, 1, MidpointRounding.AwayFromZero)
'
``````

### 注釈

`decimals`パラメーター戻り値の小数点以下桁数の大きな数を指定し、0 から 28 の範囲します。The `decimals` parameter specifies the number of significant decimal places in the return value and ranges from 0 to 28. 場合`decimals`0 の場合は、整数が返されます。If `decimals` is zero, an integer is returned.

ゼロから離れる方向に丸め処理します。Rounding away from zero.

ゼロから離れる方向に丸め処理は、丸め処理の最もよく知られた形式です。Rounding away from zero is the most widely known form of rounding.

こちらもご覧ください