각 함수는 특정 데이터 형식식 강제 변환합니다.

구문

CBool( expression )

CByte( expression )

CCur( expression )

CDate( expression )

CDbl( expression )

CDec( expression )

CInt( expression )

CLng( expression )

CSng( expression )

CStr( expression )

CVar( expression )

필요한 인수 모든 문자열 식 또는 숫자 식 입니다.

반환 형식

함수 이름은 다음과 같이 반환 형식을 결정합니다.

함수

반환 형식

인수 의 범위

CBool

부울

유효한 문자열 또는 숫자 식입니다.

CByte

바이트

0에서 255까지입니다.

CCur

통화

-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807.

CDate

날짜

유효한 날짜 식입니다.

CDbl

실수(Double)

-1.79769313486231E308 to -4.94065645841247E-324 음수 값; 양수 값의 경우 4.94065645841247E-324 ~ 1.79769313486232E308입니다.

CDec

10진수

+/-79,228,162,514,264,337,593,543,950,335(소수 자릿수가 없는 숫자). 소수 자릿수가 28인 숫자의 경우 범위는 입니다. +/-7.9228162514264337593543950335. 0이 아닌 가장 작은 숫자는 0.00000000000000000000000000001입니다.

CInt

정수

-32,768 ~ 32,767; 분수는 반올림됩니다.

CLng

-2,147,483,648 ~ 2,147,483,647; 분수는 반올림됩니다.

CSng

실수(Single)

-3.402823E38 ~ -1.401298E-45 음수 값; 양수 값의 경우 1.401298E-45 ~ 3.402823E38

CStr

String

CStr에 대한 반환은 인수에 따라 달라집니다.

CVar

변형

숫자의 경우 Double 과 같은 범위입니다. 숫자가 아닌 문자열과 동일한 범위입니다.

주의

함수에 전달된 이 변환되는 데이터 형식의 범위를 벗어나면 오류가 발생합니다.

일반적으로 데이터 형식 변환 함수를 사용하여 코드를 문서화하여 일부 작업의 결과를 기본 데이터 형식이 아닌 특정 데이터 형식으로 표현해야 한다는 것을 보여줄 수 있습니다. 예를 들어 CCur 를 사용하여 단정밀도, 배정밀도 또는 정수 산술이 정상적으로 발생하는 경우 통화 산술을 강제로 적용합니다.

한 데이터 형식에서 다른 데이터 형식으로 국제적으로 인식되는 변환을 제공하려면 Val 대신 데이터 형식 변환 함수를 사용해야 합니다. 예를 들어 CCur를 사용하는 경우 컴퓨터의 로캘 설정에 따라 서로 다른 소수 구분 기호, 천 개의 구분 기호 및 다양한 통화 옵션이 제대로 인식됩니다.

소수 부분이 정확히 0.5이면 CIntCLng 은 항상 가장 가까운 짝수로 반올림합니다. 예를 들어 0.5는 0으로, 1.5는 2로 반올림합니다. CIntCLng 은 숫자의 소수 부분이 아니라 둥글게 자르는 수정Int 함수와 다릅니다. 또한 FixInt는 항상 전달되는 것과 동일한 형식의 값을 반환합니다.

IsDate 함수를 사용하여 날짜를 날짜 또는 시간으로 변환할 수 있는지 확인합니다. CDate 는 날짜 리터럴과 시간 리터럴뿐만 아니라 허용 가능한 날짜 범위에 속하는 일부 숫자를 인식합니다. 숫자를 날짜로 변환할 때 정수 부분은 날짜로 변환됩니다. 숫자의 일부분은 자정부터 하루 중 시간으로 변환됩니다.

CDate 는 시스템의 로캘 설정에 따라 날짜 형식을 인식합니다. 일, 월 및 연도의 올바른 순서는 인식된 날짜 설정 중 하나 이외의 형식으로 제공되는지 확인할 수 없습니다. 또한 요일 문자열도 포함하는 경우 긴 날짜 형식이 인식되지 않습니다.

이전 버전의 Visual Basic과의 호환성을 위해 CVDate 함수도 제공됩니다. CVDate 함수의 구문은 CDate 함수와 동일합니다. 그러나 CVDate는 실제 Date 형식 대신 하위 형식이 DateVariant를 반환합니다. 이제 내장 날짜 형식이 있으므로 CVDate가 더 이상 필요하지 않습니다. 식을 날짜 로 변환한 다음 Variant에 할당하여 동일한 효과를 달성할 수 있습니다. 이 기술은 다른 모든 내장 형식을 해당 Variant 하위 형식으로 변환하는 것과 일치합니다.

참고:  CDec 함수는 불연속 데이터 형식을 반환하지 않습니다. 대신 항상 값이 10진수 하위 형식으로 변환된 Variant를 반환합니다.

쿼리 예제

Expression

결과

SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales;

"SalePrice", "FinalPrice"를 반환하고 SalePrice가 최종 가격보다 큰지 평가합니다. true이면 "-1"을 반환하고 false이면 "0"을 반환합니다.

SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Quantity" 필드의 값을 바이트 형식으로 변환하고 Expr1 열 Expr1 Returns "ProductID"에 표시하고, "Quantity" 필드의 값을 통화 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales;

"ProductID"를 반환하고 ,"DateofSale" 필드의 값을 날짜 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Discount" 필드의 값을 이중 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Discount" 필드의 값을 정수 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Discount" 필드의 값을 Long 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Discount" 필드의 값을 단일 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고 , "Discount" 필드의 값을 문자열 형식으로 변환하고 Expr1 열에 표시합니다.

SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales;

"ProductID"를 반환하고, "Discount" 필드의 값을 숫자 값의 경우 Double로, 숫자가 아닌 값의 경우 String으로 변환합니다.

VBA 예제

참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 작업에 대한 자세한 내용은 액세스 VBA 참조를 참조하세요.

CBool 함수

이 예제에서는 CBool 함수를 사용하여 식을 부울로 변환합니다. 식이 0이 아닌 값으로 계산되면 CBoolTrue를 반환합니다. 그렇지 않으면 False를 반환 합니다.

Dim A, B, Check
A = 5: B = 5    ' Initialize variables.
Check = CBool(A = B)    ' Check contains True.
A = 0    ' Define variable.
Check = CBool(A)    ' Check contains False.

CByte 함수

이 예제에서는 CByte 함수를 사용하여 식을 Byte로 변환합니다.

Dim MyDouble, MyByte
MyDouble = 125.5678    ' MyDouble is a Double.
MyByte = CByte(MyDouble)    ' MyByte contains 126.

CCur 함수

이 예제에서는 CCur 함수를 사용하여 식을 Currency로 변환합니다.

Dim MyDouble, MyCurr
MyDouble = 543.214588    ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)    
' Convert result of MyDouble * 2 (1086.429176) to a 
' Currency (1086.4292).

CDate 함수

이 예제에서는 CDate 함수를 사용하여 문자열을 Date로 변환합니다. 일반적으로 하드 코딩 날짜와 시간을 문자열로 지정하지 않는 것이 좋습니다(이 예제와 같이). 대신 #2/12/1969# 및 #4:45:23 PM#과 같은 날짜 리터럴 및 시간 리터럴을 사용합니다.

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" 
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM" 
' Convert to Date data type.
MyShortTime = CDate(MyTime)

CDbl 함수

이 예제에서는 CDbl 함수를 사용하여 식을 Double로 변환합니다.

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

CDec 함수

이 예제에서는 CDec 함수를 사용하여 숫자 값을 10진수로 변환합니다.

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587    ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr)     ' MyDecimal is a Decimal.

CInt 함수

이 예제에서는 CInt 함수를 사용하여 값을 수로 변환합니다.

Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble is a Double.
MyInt = CInt(MyDouble)    ' MyInt contains 2346.

CLng 함수

이 예제에서는 CLng 함수를 사용하여 값을 Long으로 변환합니다.

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55  ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

CSng 함수

이 예제에서는 CSng 함수를 사용하여 값을 Single로 변환합니다.

Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

CStr 함수

이 예제에서는 CStr 함수를 사용하여 숫자 값을 String으로 변환합니다.

Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

CVar 함수

이 예제에서는 CVar 함수를 사용하여 식을 Variant로 변환합니다.

Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000") 
' MyVar contains the string 4534000.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.