IT/ASP

ASP Round, Cint, Int 함수

당양부부34 2013. 11. 20. 11:02

ASP 에서 Round 함수는 반올림 함수가 아니다.

 

페이징을 관련 프로그래밍을 하면서 한페이지씩 많을 때가 있어서

 

확인하다가 우연히 발견했다.

 

이해를 돕기위해 간단히 표로 보여준다

 

 

숫자 Round Cint Int
1.5 2 2 1
2.5 2 2 2
3.5 4 4 3
4.5 4 4 4
5.5 6 6 5
6.5 6 6 6
7.5 8 8 7
8.5 8 8 8
9.5 10 10 9
10.5 10 10 10

 

뭔가 규칙같은게 보이나?

 

그래 Round 이놈은 무조건 짝수로 만들고 있다. 1.6 은 2가 되고 2.6도 2가 된다.

 

당연한 얘기지만 0.5 보다 작을 때는 소숫점을 잘라버린다.

 

내가 페이징할 때 자주 쓰는 Cint 역시 Round와 동일하게 처리됐다.

 

그래서 소숫점을 잘라주는 Int를 사용하면 문제없이 내림처리가 가능하다.

 

그럼 ASP에서 반올림은 어떻게 할까? 여러가지 방법이 있겠지만,

 

Int(자연수+0.5)

 

이러면 해결된다. 간단하나?

 

그런데 왜 저렇게 처리될까 해서 포털에서 검색을 해봤더니 결과가 뙇!!

 

알다시피 Round함수는 통계함수다.

 

0.5이상일 때 무조건 반올림 처리하는 것보다, 홀수면 반올림 짝수면 내림처리를 하는게

 

통계학적으로 봤을 때 오차가 줄어든다고 한다.