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

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

본문 바로가기

사이트 내 전체검색

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

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 2,641건 60 페이지
  • RSS
기술자료 목록
1461
JavaScript   21139  2013-10-07 22:18  
1460
그누보드   13413  2013-10-06 20:04  
열람
ClassicASP   28204  2013-10-04 21:28  
1458
WindowsServer   16656  2013-10-02 23:39  
1457
WindowsServer   26122  2013-10-02 12:58 ~ 2013-10-03 00:00  
1456
ClassicASP   20495  2013-10-02 12:35  
1455
ClassicASP   16179  2013-09-30 00:42  
1454
Search   15749  2013-09-25 17:54  
1453
영카트   12646  2013-09-24 16:44  
1452
WindowsServer   18363  2013-09-24 15:08  
1451
일반   23909  2013-09-22 23:31  
1450
ClassicASP   16213  2013-09-22 21:15  
1449
일반   23913  2013-09-21 13:08  
1448
일반   15213  2013-09-16 23:54 ~ 2013-09-21 00:00  
1447
일반   18535  2013-09-16 21:31 ~ 2013-09-21 00:00  
1446
일반   14033  2013-09-16 21:30 ~ 2013-09-17 00:00  
1445
일반   19626  2013-09-16 18:48  
1444
일반   17392  2013-09-14 21:30 ~ 2014-09-25 00:00  
1443
그누보드   19728  2013-09-14 13:43 ~ 2023-11-06 09:20  
1442
일반   16353  2013-09-14 01:12  

검색

해피정닷컴 정보

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

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