반응형

* C# 반올림 Math.Round() 예제...

 

//테스트 변수

double dbTmp = 12.5; 


//반올림 
int iRound = (int)Math.Round(dbTmp, MidpointRounding.AwayFromZero  );

//결과 : iRound = 13



//올림
int iCeiling = (int)Math.Ceiling(dbTmp);

//결과 : iCeiling = 13


//내림 

int iTruncate = (int)Math.Truncate(dbTmp);

//결과 : iTruncate = 12


//int 형으로 캐스팅 했을 시
int iTmp = (int)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