반응형
* 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
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] Json Read 를 이용한 로또(Lotto) 당첨 번호 읽기 예제 (0) | 2019.12.10 |
---|---|
[VBNET] Json File Write & Read 예제... (0) | 2019.12.07 |
[VBNET] Redim Preserve 및 배열 크기(Size) 조절 (0) | 2019.11.26 |
[VBNET] 폼 (Form) 사이즈 고정(Size fix) (0) | 2019.11.23 |
[VBNET] 32bit, 64bit 운영체제 체크 하기 (0) | 2019.11.22 |