문자열 값을 숫자 값으로 변환하는 함수 / 숫자 서브 타입 관련 > 기술자료 | 해피정닷컴

문자열 값을 숫자 값으로 변환하는 함수 / 숫자 서브 타입 관련 > 기술자료

본문 바로가기

사이트 내 전체검색

문자열 값을 숫자 값으로 변환하는 함수 / 숫자 서브 타입 관련 > 기술자료

ClassicASP 문자열 값을 숫자 값으로 변환하는 함수 / 숫자 서브 타입 관련

페이지 정보


본문

1. CInt, CLng

CInt 와 CLng 함수는 숫자형으로 변환하는 함수 중에 가장 많이 쓰이는 함수입니다. Int는 정수형(Integer), CLng 는 긴 정수형(Long)의 값으로 변환시켜 주는 함수지요.

예를 들자면 다음과 같습니다.

DIM intFirst, intSecond, intPlus
intFirst = "200"
intSecond = "400"
intPlus = intFirst + intSecond

이 경우 intPlus 의 값은 600 이 아닌 "200400" 이 된다는 말씀을 지난 강좌에서 드렸지요? 200 과 400 의 앞뒤에 큰 따옴표가 있기 때문에 문자열 서브 타입이 되기 때문입니다.) 이것을 CInt 함수를 써서 변환시키면 어떻게 될까요?

intFirst = CInt ("200")
intSecond = CInt ("400")
intPlus = intFirst + intSecond

이제 intPlus 에는 우리가 원하던대로 600 이라는 값이 들어가게 됩니다. 이처럼 CInt 는 인자로 들어온 값을 '숫자 서브 타입' 으로 변경해주는 함수입니다.

그런데 만약 intSecond = CInt ("50000") 와 같이 사용하면 어떻게 될까요? 네.. 이 경우에는 '오버플로' 라는 오류를 만나게 됩니다.

예) CInt("5000")
Microsoft VBScript runtime 오류 '800a0006'
Overflow: 'CInt'

정수형(Integer)의 한계치인 32,767 을 넘어갔기 때문이지요. 이때에는 CLng 를 사용하여 intSecond = CLng ("50000") 과 같이 사용하시면 되겠습니다.

그리고 CInt 와 CLng 는 정수형 타입이므로 소수점을 포함한 숫자가 인자로 들어온다면 '반올림한 정수' 를 돌려준다는 사실을 추가적으로 기억해 주시기 바랍니다. (한가지 재미있는 규칙은.. 정확하게 절반인 경우에는 가장 가까운 짝수를 반환합니다. 즉 CInt (0.5) 인 경우에는 0을, CInt (1.5) 인 경우에는 1을 반환한다는 것이지요.)

또한, 주의하실 점을 한가지 알려드리자면.. CInt 나 CLng 에 '숫자로 변환할 수 없는 값' 을 넣는다면 오류가 발생한다는 것입니다. (예를 들어 CInt ("abc") 나 CInt ("오십삼") 처럼은 사용하실 수 없다는 뜻이지요.)

예1) CInt("aaa")
Microsoft VBScript runtime 오류 '800a000d'
Type mismatch: 'CInt'

예2) Cint(aaa)
Microsoft VBScript runtime 오류 '800a01ca'
Variable uses an Automation type not supported in VBScript: 'CInt'


2. CByte, CSng, CDbl, CCur

그렇다면 이제 CByte와 CSng, CDbl, CCur 등의 함수의 용도도 대충 짐작이 가시겠지요? CByte 는 CInt 와 마찬가지로 정수 값을 반환해 줍니다. (반올림 규칙도 일치합니다.) 하지만 변환된 값이 0 ~ 255 사이의 값이 아니라면 오류가 발생합니다.

CSng 와 CDbl 도 각각 Single, Double 형의 값을 반환해 주는데요. 예를 들어서 다음 두 변수에 같은 값을 인자로 주었다고 가정해 보겠습니다.

intFirst = CSng ("12345.54321")
intSecond = CDbl ("12345.54321")

이때 intFirst 값은 12345.54, intSecond 값은 12345.54321 으로 나타나게 됩니다. (결과 자체보다는.. CSng 보다 CDbl 이 정밀하다는 사실을 기억해두시기 바랍니다.)

CCur 역시 CSng, CDbl 과 마찬가지이지만 '통화' 용도로 사용된다는 설명을 드렸었지요? CCur 은 특이하게도 소수점 5자리에서 반올림을 하게 됩니다. 즉, CCur ("12345.54321") 이라고 한다면 12345.5432 라는 값이 반환되는 것이지요.


3. Fix, Int, Abs

Fix 와 Int 는 모두 '잘라내기를 통해 숫자의 정수 부분을 반환' 하는 함수입니다. 즉 Fix (9.8) 이나 Int (9.8) 모두 똑같이 9 라는 값을 반환한다는 뜻이지요. 그렇다면 이 두 함수의 차이는 무엇일까요? 그것은 바로 음수의 처리에 있습니다. 쉽게 말씀드리자면 Fix (-9.8) 은 -9를, Int (-9.8) 은 -10을 반환한다는 의미인 것입니다. (즉, Fix 는 소수점 이하 숫자를 없애버리는 것이고, Int 는 '내림' 을 하는 것이지요.)

Abs 는 수학에서 많이 쓰이는 함수인데요.. 절대값을 반환합니다. 즉 Abs (-3.5) 나 Abs (3.5) 모두 3.5 라는 값을 반환하게 되지요.



자료출처
http://taeyo.net/columns/View.aspx?SEQ=152&PSEQ=12&IDX=6

댓글목록

등록된 댓글이 없습니다.


Total 198건 2 페이지
  • RSS
기술자료 목록
178
ClassicASP   12306  2016-01-18 22:59  
177
ClassicASP   10462  2016-01-13 04:34 ~ 2018-05-28 18:34  
176
ClassicASP   11401  2015-12-16 16:12 ~ 2016-02-03 00:00  
175
ClassicASP   13598  2015-08-19 00:13  
174
ClassicASP   14481  2015-03-25 12:37  
173
ClassicASP   20018  2015-02-11 17:39  
172
ClassicASP   15064  2014-12-03 15:33  
171
ClassicASP   27715  2014-11-04 16:47 ~ 2016-02-25 00:00  
170
ClassicASP   12311  2014-09-26 01:08 ~ 2018-12-01 22:51  
169
ClassicASP   24931  2014-04-22 20:15 ~ 2016-11-15 00:00  
168
ClassicASP   26263  2014-02-26 22:18 ~ 2014-08-17 00:00  
167
ClassicASP   21337  2013-11-28 00:08  
166
ClassicASP   17599  2013-10-29 17:44 ~ 2021-08-12 15:32  
165
ClassicASP   16159  2013-10-09 22:56 ~ 2015-08-18 00:00  
열람
ClassicASP   28225  2013-10-04 21:28  
163
ClassicASP   20507  2013-10-02 12:35  
162
ClassicASP   16192  2013-09-30 00:42  
161
ClassicASP   16218  2013-09-22 21:15  
160
ClassicASP   21518  2013-06-19 21:48 ~ 2013-11-28 00:00  
159
ClassicASP   13641  2013-05-28 13:38  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.