반응형

* VBNET 반올림 Math.Round() 

 

'테스트 변수
        Dim dbTmp As Double = 12.5
        '반올림 
        Dim iRound As Integer = Convert.ToInt32(Math.Round(dbTmp, MidpointRounding.AwayFromZero))
        '결과 : iRound = 13 

        '올림 
        Dim iCeiling As Integer = Convert.ToInt32(Math.Ceiling(dbTmp))
        '결과 : iCeiling = 13 

        '내림 
        Dim iTruncate As Integer = Convert.ToInt32(Math.Truncate(dbTmp))
        '결과 : iTruncate = 12 

        'int 형으로 캐스팅 했을 시 
        Dim iTmp As Integer = Convert.ToInt32(dbTmp)
        '결과 : iTmp = 12 


        MessageBox.Show(iRound.ToString() + ", " + iCeiling.ToString() + ", " + iTruncate.ToString() + ", " + iTmp.ToString())

 

 

위 소스코드를 보면 Math.Round() 함수에 인자가 반드시 열거형 인자 MidpointRounding.AwayFromZero

전달 되는 걸 볼 수 있습니다. 만약 열거형 인자  MidpointRounding.AwayFromZero 없다면 소수점 0.5 가 반

올림이 되지 않는 걸 볼 수 있습니다. 

 

다음 표에서 일부 양수 및 음수 값과 함께에서 반올림의 결과 보여 줍니다. MidpointRounding합니다. 숫자를 반올림 하거나 내림 하는 데 자릿수가 소수점 반올림 연산에 영향을 줍니다 후 수는 0입니다. 예를 들어-2.5 수, 소수점 뒤의 숫자는 5입니다. 해당 숫자가 중간점 이기 때문에 사용할 수는 MidpointRounding 값을 반올림 한 결과 확인 합니다.  AwayFromZero 지정 된 경우-3은 전체 자릿수가 0 인 가장 가까운 숫자 이므로 반환 됩니다.  ToEven 지정 하면 전체 자릿수가 0 인 가장 가까운 짝수로는-2가 반환 됩니다.

 

원래 수                                          AwayFromZero                               ToEven

3.5 4 4
2.8 3 3
2.5 3 2
2.1 2 2
-2.1 -2 -2
-2.5 -3 -2
-2.8 -3 -3
-3.5 -4 -4

 

*참조 문서 https://docs.microsoft.com/ko-kr/dotnet/api/system.midpointrounding?view=netframework-4.8



반응형

+ Recent posts