이러한 함수는 인라인으로 컴파일됩니다. 즉, 변환 코드는 식을 평가하는 코드의 일부입니다. 경우에 따라 변환을 수행하기 위한 프로시저 호출이 없으므로 성능이 향상됩니다. 각 함수는 식을 특정 데이터 형식으로 강제 변환합니다.
문법
CBool(expression)
CByte(expression)
CChar(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CObj(expression)
CSByte(expression)
CShort(expression)
CSng(expression)
CStr(expression)
CUInt(expression)
CULng(expression)
CUShort(expression)
부분
expression
필수 사항입니다. 원본 데이터 형식의 식입니다.
반환 값 데이터 형식
함수 이름은 다음 표와 같이 반환하는 값의 데이터 형식을 결정합니다.
| 함수 이름 | 데이터 형식 반환 | 인수의 expression 범위 |
|---|---|---|
CBool |
불리언 데이터 형식 | 유효한 Char 식 또는 String 숫자 식입니다. |
CByte |
바이트 데이터 형식 |
Byte.MinValue (0) ~ Byte.MaxValue (255) (부호 없는); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 함수를 사용하여 부동 소수점에서 바이트 변환 CByte 의 성능을 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CChar |
Char 데이터 형식 | 모든 유효 Char 하거나 String 식이며, 첫 문자 String 만 변환됩니다. 값은 0에서 65535(서명되지 않음)일 수 있습니다. |
CDate |
날짜 데이터 형식 | 날짜 및 시간의 유효한 표현입니다. |
CDbl |
Double 데이터 형식 | -1.79769313486231570E+308 ~ -4.94065645841246544E-324 음수 값; 양수 값의 경우 4.94065645841246544E-324 ~ 1.79769313486231570E+308 |
CDec |
10진수 데이터 형식 | +/-79,228,162,514,264,337,593,543,950,335( 소수 자릿수가 없는 숫자). 소수 자릿수가 28인 숫자의 경우 범위는 +/-7.92281625142643375935439503335입니다. 0이 아닌 가장 작은 숫자는 0.00000000000000000000000000000000001(+/-1E-28)입니다. |
CInt |
정수 데이터 형식 |
Int32.MinValue (-2,147,483,648) ~ Int32.MaxValue (2,147,483,647); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 함수를 사용하여 부동 소수점에서 정수로 변환 CInt 하는 성능을 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CLng |
긴 데이터 형식 |
Int64.MinValue (-9,223,372,036,854,775,808) ~ Int64.MaxValue (9,223,372,036,854,775,807); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 함수를 사용하여 부동 소수점에서 64비트 정수 변환 CLng 의 성능을 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CObj |
개체 데이터 형식 | 유효한 식입니다. |
CSByte |
SByte 데이터 형식 |
SByte.MinValue (-128) ~ SByte.MaxValue (127); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 부동 소수점의 성능을 함수로 서명된 바이트 변환으로 CSByte 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CShort |
짧은 데이터 형식 |
Int16.MinValue (-32,768) ~ Int16.MaxValue (32,767); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 함수를 사용하여 부동 소수점에서 16비트 정수 변환 CShort 의 성능을 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CSng |
Single 데이터 형식 | 음수 값의 경우 -3.402823E+38 ~ -1.401298E-45 양수 값의 경우 1.401298E-45~ 3.402823E+38 |
CStr |
문자열 데이터 형식 | 인수에 따라 CStr 반환됩니다 expression .
CStr 함수의 반환 값을 참조하세요. |
CUInt |
UInteger 데이터 형식 |
UInt32.MinValue (0) ~ UInt32.MaxValue (4,294,967,295) (부호 없는); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 부동 소수점의 성능을 함수를 사용하여 부호 없는 정수 변환으로 CUInt 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CULng |
ULong 데이터 형식 |
UInt64.MinValue (0) ~ UInt64.MaxValue (18,446,744,073,709,551,615) (부호 없는); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 부동 소수점의 성능을 함수를 사용하여 부호 없는 긴 정수 변환으로 CULng 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
CUShort |
UShort 데이터 형식 |
UInt16.MinValue (0) ~ UInt16.MaxValue (65,535) (부호 없는); 소수 부분이 반올림됩니다.1 Visual Basic 15.8부터 Visual Basic은 부동 소수점의 성능을 함수를 사용하여 부호 없는 16비트 정수 변환으로 CUShort 최적화합니다. 자세한 내용은 설명 섹션을 참조하세요. 예제는 CInt 예제 섹션을 참조하세요. |
1 소수 부분은 은행의 반올림이라는 반올림의 특별한 유형을 적용 할 수 있습니다. 자세한 내용은 "설명"을 참조하세요.
비고
일반적으로 클래스 또는 개별 형식 구조 또는 클래스와 같은 ToString().NET Framework 메서드를 Convert 기본 설정에서 Visual Basic 형식 변환 함수를 사용해야 합니다. Visual Basic 함수는 Visual Basic 코드와의 최적의 상호 작용을 위해 설계되었으며 소스 코드를 더 짧고 읽기 쉽게 만듭니다. 또한 .NET Framework 변환 메서드가 Visual Basic 함수와 같은 결과를 항상 생성하는 것은 아닙니다(예: 변환 Boolean 할 Integer때). 자세한 내용은 데이터 형식 문제 해결을 참조하세요.
Visual Basic 15.8부터 다음 메서드에서 반환하는 값을 정수 변환 함수(SingleDoubleCByteCShortCIntCLngCSByteCUShort, ) 중 하나에 전달할 CUIntCULng 때 부동 소수점 대 정수 변환의 성능이 최적화됩니다.
- Conversion.Fix(Double)
- Conversion.Fix(Object)
- Conversion.Fix(Single)
- Conversion.Int(Double)
- Conversion.Int(Object)
- Conversion.Int(Single)
- Math.Ceiling(Double)
- Math.Floor(Double)
- Math.Round(Double)
- Math.Truncate(Double)
이 최적화를 사용하면 많은 수의 정수 변환을 수행하는 코드가 최대 2배 빠른 속도로 실행되도록 할 수 있습니다. 다음 예제에서는 이러한 최적화된 부동 소수점-정수 변환을 보여 줍니다.
Dim s As Single = 173.7619
Dim d As Double = s
Dim i1 As Integer = CInt(Fix(s)) ' Result: 173
Dim b1 As Byte = CByte(Int(d)) ' Result: 173
Dim s1 AS Short = CShort(Math.Truncate(s)) ' Result: 173
Dim i2 As Integer = CInt(Math.Ceiling(d)) ' Result: 174
Dim i3 As Integer = CInt(Math.Round(s)) ' Result: 174
행동
강압. 일반적으로 데이터 형식 변환 함수를 사용하여 작업 결과를 기본 데이터 형식이 아닌 특정 데이터 형식으로 강제 변환할 수 있습니다. 예를 들어 단정밀도, 배정밀도 또는 정수 산술 연산이 일반적으로 수행되는 경우 소수 산술 연산을 강제 적용하는 데 사용합니다
CDec.변환에 실패했습니다. 함수에
expression전달된 함수가 변환 OverflowException 할 데이터 형식의 범위를 벗어나면 발생합니다.소수 부분입니다. 비통합 값을 정수 형식으로 변환하는 경우 정수 변환 함수(
CByte, ,CInt,CLng,CSByteCShort,CUIntCULng및CUShort)는 소수 부분을 제거하고 값을 가장 가까운 정수로 반올림합니다.소수 부분이 정확히 0.5이면 정수 변환 함수가 소수 부분을 가장 가까운 정수로 반올림합니다. 예를 들어 0.5는 0으로 반올림되고 1.5와 2.5는 모두 2로 반올림됩니다. 이것은 때로는 은행의 반올림이라고하며, 그 목적은 많은 숫자를 함께 추가 할 때 축적 될 수있는 편견을 보상하는 것입니다.
CInt은CLng숫자의 Int 소수 부분을 반올림하는 것이 아니라 잘리는 함수와 Fix 다릅니다.FixInt또한 전달하는 것과 동일한 데이터 형식의 값을 항상 반환합니다.날짜/시간 변환입니다. 함수를 IsDate 사용하여 값을 날짜 및 시간으로 변환할 수 있는지 확인합니다.
CDate는 숫자 값이 아닌 날짜 리터럴과 시간 리터럴을 인식합니다. Visual Basic 6.0Date값을DateVisual Basic 2005 이상 버전의 값으로 변환하려면 이 메서드를 DateTime.FromOADate 사용할 수 있습니다.중립 날짜/시간 값입니다. 날짜 데이터 형식에는 항상 날짜 및 시간 정보가 모두 포함됩니다. 형식 변환을 위해 Visual Basic은 1/1/0001(1년 1월 1일)을 날짜의 중립 값 으로 간주하고 00:00:00(자정)을 해당 시간에 대한 중립 값으로 간주합니다. 값을 문자열로
Date변환하는 경우 결과 문자열CStr에 중립 값이 포함되지 않습니다. 예를 들어 문자열로 변환#January 1, 0001 9:30:00#하는 경우 결과는 "오전 9:30:00"이고 날짜 정보는 표시되지 않습니다. 그러나 날짜 정보는 여전히 원래Date값에 있으며 함수와 같은 DatePart 함수를 사용하여 복구할 수 있습니다.문화권 민감도입니다. 문자열과 관련된 형식 변환 함수는 애플리케이션의 현재 문화권 설정에 따라 변환을 수행합니다. 예를 들어
CDate시스템의 로캘 설정에 따라 날짜 형식을 인식합니다. 로캘에 대해 날짜, 월 및 연도를 올바른 순서로 제공해야 합니다. 그렇지 않으면 날짜가 올바르게 해석되지 않을 수 있습니다. "수요일"과 같은 요일 문자열이 포함된 경우 긴 날짜 형식이 인식되지 않습니다.로캘에서 지정한 형식 이외의 형식으로 값의 문자열 표현으로 변환하거나 변환해야 하는 경우 Visual Basic 형식 변환 함수를 사용할 수 없습니다. 이렇게 하려면 해당 값 형식의 메서드와
ToString(IFormatProvider)메서드를 사용합니다Parse(String, IFormatProvider). 예를 들어 문자열을 a로 변환할 Double.Parse때 사용하고Double형식 Double.ToString 값을 문자열로 변환할 때 사용합니다Double.
CType 연산자
CType 연산자는 두 번째 인수typename를 사용하고 유효한 변환이 있는 typename 모든 데이터 형식, 구조체, 클래스 또는 인터페이스일 수 있는 위치로 강제 변환 expressiontypename합니다.
다른 형식 변환 키워드와 CType를 비교하려면 DirectCast 연산자 및 TryCast 연산자를 참조하세요.
CBool 예제
다음 예제에서는 함수를 CBool 사용하여 식을 값으로 Boolean 변환합니다. 식이 0이 아닌 값 CBool 으로 계산되면 반환됩니다 True. 그렇지 않으면 반환됩니다 False.
Dim a, b, c As Integer
Dim check As Boolean
a = 5
b = 5
' The following line of code sets check to True.
check = CBool(a = b)
c = 0
' The following line of code sets check to False.
check = CBool(c)
CByte 예제
다음 예제에서는 함수를 CByte 사용하여 식을 .로 변환합니다 Byte.
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
CChar 예제
다음 예제에서는 함수를 CChar 사용하여 식의 String 첫 번째 문자를 형식으로 Char 변환합니다.
Dim aString As String
Dim aChar As Char
' CChar converts only the first character of the string.
aString = "BCD"
' The following line of code sets aChar to "B".
aChar = CChar(aString)
입력 인수 CChar 는 데이터 형식 Char 이어야 String합니다. 숫자 데이터 형식을 허용할 수 없으므로 CChar 숫자를 문자로 변환하는 데 사용할 CChar 수 없습니다. 다음 예제에서는 코드 포인트(문자 코드)를 나타내는 숫자를 가져와 해당 문자로 변환합니다. 함수를 InputBox 사용하여 숫자 문자열을 가져오고, CInt 문자열을 형식으로 변환하고Integer, 숫자를 형식ChrWChar으로 변환합니다.
Dim someDigits As String
Dim codePoint As Integer
Dim thisChar As Char
someDigits = InputBox("Enter code point of character:")
codePoint = CInt(someDigits)
' The following line of code sets thisChar to the Char value of codePoint.
thisChar = ChrW(codePoint)
CDate 예제
다음 예제에서는 함수를 CDate 사용하여 문자열을 값으로 Date 변환합니다. 일반적으로 이 예제와 같이 문자열로 날짜 및 시간을 하드 코딩하는 것은 권장되지 않습니다. 대신 #Feb 12, 1969# 및 #4:45:23 PM#과 같은 날짜 리터럴과 시간 리터럴을 사용합니다.
Dim aDateString, aTimeString As String
Dim aDate, aTime As Date
aDateString = "February 12, 1969"
aTimeString = "4:35:47 PM"
' The following line of code sets aDate to a Date value.
aDate = CDate(aDateString)
' The following line of code sets aTime to Date value.
aTime = CDate(aTimeString)
CDbl 예제
Dim aDec As Decimal
Dim aDbl As Double
' The following line of code uses the literal type character D to make aDec a Decimal.
aDec = 234.456784D
' The following line of code sets aDbl to 1.9225456288E+1.
aDbl = CDbl(aDec * 8.2D * 0.01D)
CDec 예제
다음 예제에서는 함수를 CDec 사용하여 숫자 값을 .로 변환합니다 Decimal.
Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' The following line of code sets aDecimal to 10000000.0587.
aDecimal = CDec(aDouble)
CInt 예제
다음 예제에서는 함수를 CInt 사용하여 값을 .로 변환합니다 Integer.
Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)
CLng 예제
다음 예제에서는 함수를 CLng 사용하여 값을 .로 변환합니다 Long.
Dim aDbl1, aDbl2 As Double
Dim aLng1, aLng2 As Long
aDbl1 = 25427.45
aDbl2 = 25427.55
' The following line of code sets aLng1 to 25427.
aLng1 = CLng(aDbl1)
' The following line of code sets aLng2 to 25428.
aLng2 = CLng(aDbl2)
CObj 예제
다음 예제에서는 함수를 CObj 사용하여 숫자 값을 .로 변환합니다 Object. 변수 자체에는 Object 할당된 값을 가리키는 Double 4 바이트 포인터만 포함됩니다.
Dim aDouble As Double
Dim anObject As Object
aDouble = 2.7182818284
' The following line of code sets anObject to a pointer to aDouble.
anObject = CObj(aDouble)
CSByte 예제
다음 예제에서는 함수를 CSByte 사용하여 숫자 값을 .로 변환합니다 SByte.
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)
CShort 예제
다음 예제에서는 함수를 CShort 사용하여 숫자 값을 .로 변환합니다 Short.
Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)
CSng 예제
다음 예제에서는 함수를 CSng 사용하여 값을 .로 변환합니다 Single.
Dim aDouble1, aDouble2 As Double
Dim aSingle1, aSingle2 As Single
aDouble1 = 75.3421105
aDouble2 = 75.3421567
' The following line of code sets aSingle1 to 75.34211.
aSingle1 = CSng(aDouble1)
' The following line of code sets aSingle2 to 75.34216.
aSingle2 = CSng(aDouble2)
CStr 예제
다음 예제에서는 함수를 CStr 사용하여 숫자 값을 .로 변환합니다 String.
Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' The following line of code sets aString to "437.324".
aString = CStr(aDouble)
다음 예제에서는 함수를 CStr 사용하여 값을 값으로 Date 변환 String 합니다.
Dim aDate As Date
Dim aString As String
' The following line of code generates a COMPILER ERROR because of invalid format.
' aDate = #February 12, 1969 00:00:00#
' Date literals must be in the format #m/d/yyyy# or they are invalid.
' The following line of code sets the time component of aDate to midnight.
aDate = #2/12/1969#
' The following conversion suppresses the neutral time value of 00:00:00.
' The following line of code sets aString to "2/12/1969".
aString = CStr(aDate)
' The following line of code sets the time component of aDate to one second past midnight.
aDate = #2/12/1969 12:00:01 AM#
' The time component becomes part of the converted value.
' The following line of code sets aString to "2/12/1969 12:00:01 AM".
aString = CStr(aDate)
CStr 항상 현재 로캘에 대한 표준 짧은 형식으로 값을 렌더링합니다 Date (예: "6/15/2003 4:35:47 PM"). 그러나 CStr 날짜에 대해 1/1/0001의 중립 값 과 시간 00:00:00을 표시하지 않습니다.
반환된 CStr값에 대한 자세한 내용은 CStr 함수의 반환 값을 참조하세요.
CUInt 예제
다음 예제에서는 함수를 CUInt 사용하여 숫자 값을 .로 변환합니다 UInteger.
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)
CULng 예제
다음 예제에서는 함수를 CULng 사용하여 숫자 값을 .로 변환합니다 ULong.
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)
CUShort 예제
다음 예제에서는 함수를 CUShort 사용하여 숫자 값을 .로 변환합니다 UShort.
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)
참고하십시오
.NET