4.3 수학 연산자

작업하는 내용에 따라 수학적인 계산이 필요한 경우가 있다. 다른 언어들과 마찬가지로 VB 스크립트에서도 기본적인 수학 연산자들을 사용자에게 제공하고 있다. 지금부터 이런 수학 연산자들의 종류와 사용법에 대해서 알아보도록 하자.

1) Abs

숫자의 절대값을 반환한다.

구문 : Abs(number)

예제 : Abs(-2000) ' 2000을 반환


2) Atn

숫자의 아크탄젠트 값을 반환하다.

구문 : Atn(number)

예제 : Atn(1)


3) Cos

각도의 코사인 값을 반환한다.

구문 : Cos(number)

예제 : Cos(45)


4) Exp

e의 n승을 지정하는 값을 반환한다.

구문 : Exp(number)

예제 : Exp(-1)


5) Fix

숫자의 정수 부분을 반환한다.

구문 : Fix(number)  ' number가 음수이면 number보다 크거나 같은 첫 번째 음수 정수 부분이 반환된다.

예제 :

Fix(2830.52) ' 2830 반환
Fix(-2830.52) ' -2830 반환


6) Int

숫자의 정수 부분을 반환한다.

구문 : Int(number) ' number가 음수이면 number보다 작거나 같은 첫 번째 음수 정수 부분이 반환된다.

예제 :

Int(2830.52) ' 2830 반환
Int(-2830.52) ' -2831 반환


7) Log

숫자의 자연 로그를 반환한다.

구문 : Log(number)

예제 : Log(5)


8) Randomize

난수 발생기를 초기화한다.

구문 : Randomize(number)

Randomize문은 number를 사용하여 Rnd 함수의 난수 발생기를 초기화하고 새 시드 값을 제공한다. number를 생략하면 시스템 타이머에서 반환하는 값을 새 시드 값으로 사용하게 된다.

Randomize문을 사용하지 않으면 인수가 없는 Rnd 함수에서는 처음 호출되었을 때의 동일한 값을 시드 값과 같은 숫자를 사용한 다음 그 이후로는 마지막으로 발생한 숫자를 시드 값으로 사용한다.

만일 난수 발생 순차를 반복하려면, 숫자 인수를 Randomize문에 사용하기 바로 전에 Rnd 함수를 음수 인수로 호출하면 된다. 같은 값의 number를 Randomize문에 사용하면 이전의 순차를 반복하지 않는다.

● randomize.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Randomize

For i = 1 to 10
   MyValue = Int((20 * Rnd) + 1) ' 1에서 20까지 무작위 값을 발생합니다.
   Response.Write i & "번째 난수 : " & MyValue & "<BR>"
Next
%>
---------------------------------------------------------------------------------------------------


[그림 3-1] randomize.asp 실행 결과


9) Rnd

난수를 발생한다.

구문 : Rnd[(number)]

Rnd 함수는 0보다 크거나 같고 1보다 작은 값을 반환한다. number의 값은 Rnd 함수가 난수를 발생시키는 방식을 결정한다.

---------------------------------------------------------------------------------------------------
number의 값 Rnd 함수의 결과

0보다 작을 경우 number를 시드로 하여 매번 같은 수
0보다 클 경우 순차적으로 생성되는 그 다음의 난수
0과 같을 경우 가장 최근에 생성한 난수
생략한 경우 순차적으로 생성되는 그 다음의 난수
---------------------------------------------------------------------------------------------------

만일 주어진 범위에서 난수를 발생하고자 한다면 다음의 공식을 이용하면 된다.

---------------------------------------------------------------------------------------------------
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
---------------------------------------------------------------------------------------------------

upperbound는 가장 큰 수이고, lowerbound는 가장 작은 수이다.

● rnd.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
For i = 1 to 5
   MyValue = Int((20 * Rnd) + 1) ' 1에서 20까지 무작위 값을 발생합니다.
   Response.Write i & "번째 난수 : " & MyValue & "<BR>"
Next
Response.Write "-------------------------<BR>"

For i = 1 to 5
   MyValue = Int((20 * Rnd(-1)) + 1) ' 1에서 20까지 무작위 값을 발생합니다.
   Response.Write i & "번째 난수 : " & MyValue & "<BR>"
Next
Response.Write "-------------------------<BR>"

For i = 1 to 5
   MyValue = Int((20 * Rnd(0)) + 1) ' 1에서 20까지 무작위 값을 발생합니다.
   Response.Write i & "번째 난수 : " & MyValue & "<BR>"
Next
%>
---------------------------------------------------------------------------------------------------


[그림 3-2] rnd.asp 실행 결과


10) Round

지정된 소수점 위치에서 반올림된 숫자를 반환한다.

구문 : Round(expression[, numdecimalplaces])

● expression : 필수적인 인수로 반올림할 수식이다.
● numdecimalplaces : 선택적인 인수로 소수점 이하의 자릿수를 나타내는 수이다. 생략하면 Round 함수는 정수를 반환한다.

예제 : Round(3.141592, 2) ' 3.14 반환


11) Sgn

숫자의 부호를 나타내는 정소를 반환한다.

구문 : Sgn(number)

● Sgn 반환 값
---------------------------------------------------------------------------------------------------
number의 값 Sgn 함수의 결과

0보다 큰 경우 1
0과 같은 경우 0
0보다 작은 경우 -1
---------------------------------------------------------------------------------------------------

예제

Sgn(100) ' 1 반환
Sgn(-100) ' -1 반환
Sgn(0) ' 0 반환

12) Sin

각도의 사인값을 반환한다.

구문 : Sin(number)

예제 : Sin(30)


13) Sqr

숫자의 제곱근을 반환한다.

구문 : Sqr(number)

예제 : Sqr(64)


14) Tan

각도의 탄젠트 값을 반환한다.

구문 : Tan(number)

예제 : Tan(0)

'asp' 카테고리의 다른 글

The ASP CAPTCHA (자동가입방지)  (0) 2007.05.03
ASP 기초 - 배열  (0) 2007.05.03
ASP 기초 - 날짜와 시간 함수  (0) 2007.05.03
ASP 기초 - 스트링 함수  (0) 2007.05.03
Active Directory 컨트롤 모듈 - Jappill.ADHelper  (0) 2007.05.03

+ Recent posts