Dev/C#2012. 6. 19. 18:35

수 계산 중에 올림 값 표현을 위해서 Math.Ceiling 메소드를 사용하게 되었다.

그런데, 부동소수점 으로 인해서 원치 않는 올림이 되는 현상이 발생했다.

ex )

int value = 50;
double percent = 1.1d;
double result = Math.Ceiling(value * percent) ;

50 * 1.1 = 55 이고 올림을 해도 55가 나올 것으로 생각했으나
56 이 나오게 되었다. 알고 보니 부동소수점 밑으로 55.0000000000000007 뭐 이런 식으로 원치 않는 값이 들어와 있었다.

이래 저래 알아본 결과 System.Decimal.Ceiling 을 사용하게 되었다.
c# 에서 제공하는 통화를 위해 제공되고 있는 메소드 이다.

참고 : http://msdn.microsoft.com/ko-kr/library/364x0z75.aspx

 

Posted by 놀란