MidpointRounding MidpointRounding MidpointRounding MidpointRounding Enum

정의

수학적 반올림 메서드가 두 수의 중간에 있는 수를 처리하는 방식을 지정합니다.Specifies how mathematical rounding methods should process a number that is midway between two numbers.

public enum class MidpointRounding
[System.Runtime.InteropServices.ComVisible(true)]
public enum MidpointRounding
type MidpointRounding = 
Public Enum MidpointRounding
상속
MidpointRoundingMidpointRoundingMidpointRoundingMidpointRounding
특성

필드

AwayFromZero AwayFromZero AwayFromZero AwayFromZero 1

두 수의 중간에 있는 수는 0에서 먼 쪽의 가장 가까운 수로 반올림됩니다.When a number is halfway between two others, it is rounded toward the nearest number that is away from zero.

ToEven ToEven ToEven ToEven 0

두 수의 중간에 있는 수는 가장 가까운 짝수로 반올림됩니다.When a number is halfway between two others, it is rounded toward the nearest even number.

ToNegativeInfinity ToNegativeInfinity ToNegativeInfinity ToNegativeInfinity 3

숫자가 다른 두 숫자의 중간에 있는 경우 무한 정밀 결과에 가장 가까우면서 이보다 크지 않은 결과로 반올림됩니다.When a number is halfway between two others, it is rounded toward the result closest to and no greater than the infinitely precise result.

ToPositiveInfinity ToPositiveInfinity ToPositiveInfinity ToPositiveInfinity 4

숫자가 다른 두 숫자의 중간에 있는 경우 무한 정밀 결과에 가장 가까우면서 이보다 작지 않은 결과로 반올림됩니다.When a number is halfway between two others, it is rounded toward the result closest to and no less than the infinitely precise result.

ToZero ToZero ToZero ToZero 2

숫자가 다른 두 숫자의 중간에 있는 경우 무한 정밀 결과에 가장 가까우면서 이보다 크지 않은 결과로 반올림됩니다.When a number is halfway between two others, it is rounded toward the result closest to and no greater in magnitude than the infinitely precise result.

예제

다음 예제에서는 MidpointRounding 열거형과 Math.Round 함께 메서드를 보여 줍니다.The following example demonstrates the Math.Round method in conjunction with the MidpointRounding enumeration:

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

*/
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.
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
End Class
'
'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)
'

설명

사용 하 여 MidpointRounding 적절 한 오버 로드를 사용 하 여 Math.Round 반올림 프로세스의 자세한 제어를 제공 합니다.Use MidpointRounding with appropriate overloads of Math.Round to provide more control of the rounding process.

반올림 작업을 암시적 또는 지정 된 정밀도;를 사용 하 여 원래 수를 사용합니다. 다음; 1을 더하여 해당 정밀도에 있는 숫자를 검사 합니다. 원래 수와 같은 전체 자릿수를 사용 하 여 가장 가까운 수를 반환 합니다.A rounding operation takes an original number with an implicit or specified precision; examines the next digit, which is at that precision plus one; and returns the nearest number with the same precision as the original number. 양수의 경우 다음 숫자가 0에서 4 사이의 가장 가까운 수는 음수를 음의 무한대는 합니다.For positive numbers, if the next digit is from 0 through 4, the nearest number is toward negative infinity. 다음 숫자 6 ~ 9 인 경우 양의 무한대 방향으로 가장 가까운 수는 있습니다.If the next digit is from 6 through 9, the nearest number is toward positive infinity. 음수 경우 다음 숫자가 0에서 4 사이의 양의 무한대 방향으로 가장 가까운 수는 있습니다.For negative numbers, if the next digit is from 0 through 4, the nearest number is toward positive infinity. 다음 숫자 6 ~ 9 인 경우 음의 무한대에 가장 가까운 수는 합니다.If the next digit is from 6 through 9, the nearest number is toward negative infinity.

위의 경우에는 MidpointRounding 열거형 올림 연산의 결과 영향을 주지 않습니다.In the previous cases, the MidpointRounding enumeration does not affect the result of the rounding operation. 그러나 다음 숫자는 5, 두 가지 가능한 결과 중간 및 모든 나머지 자릿수는 0이, 나머지 숫자가 경우 가장 가까운 모호 합니다.However, if the next digit is 5, which is the midpoint between two possible results, and all remaining digits are zero or there are no remaining digits, the nearest number is ambiguous. 이 경우에 MidpointRounding 열거형을 사용 하면 반올림 연산 0 또는 가장 가까운 짝수 번호에서 가장 가까운 수를 반환 하는지 여부를 지정할 수 있습니다.In this case, the MidpointRounding enumeration enables you to specify whether the rounding operation returns the nearest number away from zero or the nearest even number.

다음 표에서 일부 양수 및 음수 값과 함께에서 반올림의 결과 보여 줍니다. MidpointRounding합니다.The following table demonstrates the results of rounding some negative and positive numbers in conjunction with the values of MidpointRounding. 숫자를 반올림 하거나 내림 하는 데 자릿수가 소수점 반올림 연산에 영향을 줍니다 후 수는 0입니다.The precision used to round the numbers is zero, which means the number after the decimal point affects the rounding operation. 예를 들어-2.5 수, 소수점 뒤의 숫자는 5입니다.For example, for the number -2.5, the digit after the decimal point is 5. 해당 숫자가 중간점 이기 때문에 사용할 수는 MidpointRounding 값을 반올림 한 결과 확인 합니다.Because that digit is the midpoint, you can use a MidpointRounding value to determine the result of rounding. AwayFromZero 지정 된 경우-3은 전체 자릿수가 0 인 가장 가까운 숫자 이므로 반환 됩니다.If AwayFromZero is specified, -3 is returned because it is the nearest number away from zero with a precision of zero. ToEven 지정 하면 전체 자릿수가 0 인 가장 가까운 짝수로는-2가 반환 됩니다.If ToEven is specified, -2 is returned because it is the nearest even number with a precision of zero.

원래 수Original number AwayFromZeroAwayFromZero ToEvenToEven
3.53.5 44 44
2.82.8 33 33
2.52.5 33 22
2.12.1 22 22
-2.1-2.1 -2-2 -2-2
-2.5-2.5 -3-3 -2-2
-2.8-2.8 -3-3 -3-3
-3.5-3.5 -4-4 -4-4

적용 대상