2013. 11. 20. 11:02 IT/ASP
ASP Round, Cint, Int 함수
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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이상일 때 무조건 반올림 처리하는 것보다, 홀수면 반올림 짝수면 내림처리를 하는게
통계학적으로 봤을 때 오차가 줄어든다고 한다.
'IT > ASP' 카테고리의 다른 글
ASP 수치 변환 함수 (0) | 2014.02.26 |
---|---|
정규식 활용. ime-mode 숫자만 입력 가능. (0) | 2014.02.13 |
ASP 서버(Server) 정보. Request.ServerVariables. (0) | 2014.01.02 |
Asp 객체, 전역변수, global.asa (0) | 2013.12.30 |
Server. URLEncode Server. URLDecode 한글 지원 User Function (0) | 2013.09.09 |