TypkonvertierungsfunktionenType Conversion Functions

Jede Funktion wandelt einen Ausdruck in einen bestimmten Datentyp um.Each function coerces an expression to a specific data type.

SyntaxSyntax

  • CBool(expression)CBool(expression)
  • CByte(expression)CByte(expression)
  • CCur(expression)CCur(expression)
  • CDate(expression)CDate(expression)
  • CDbl(expression)CDbl(expression)
  • CDec(expression)CDec(expression)
  • CInt(expression)CInt(expression)
  • CLng(expression)CLng(expression)
  • CLngLng(expression) Nur auf 64-Bit-Plattformen gültig.CLngLng(expression) (Valid on 64-bit platforms only.)
  • CLngPtr(expression)CLngPtr(expression)
  • CSng(expression)CSng(expression)
  • CStr(expression)CStr(expression)
  • CVar(expression)CVar(expression)

Das erforderliche expression-Argument ist ein beliebiger Zeichenfolgenausdruck oder ein numerischer Ausdruck.The required expression argument is any string expression or numeric expression.

RückgabetypenReturn Types

Der Funktionsname bestimmt den Rückgabetyp, wie im Folgenden dargestellt:The function name determines the return type as shown in the following:

FunktionFunction RückgabetypReturn type Bereich für expression-ArgumentRange for expression argument
CBoolCBool BooleanBoolean Ein beliebige gültige Zeichenfolge oder ein numerischer Ausdruck.Any valid string or numeric expression.
CByteCByte ByteByte 0 bis 2550 to 255.
CCurCCur CurrencyCurrency -922.337.203.685.477,5808 bis 922.337.203.685.477,5807-922,337,203,685,477.5808 to 922,337,203,685,477.5807.
CDateCDate DateDate Jeder gültige Datumsausdruck.Any valid date expression.
CDblCDbl DoubleDouble -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte.-1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values.
CDecCDec DecimalDecimal 79.228.162.514.264.337.593.543.950.335 für unskalierte Zahlen, d. h. Zahlen ohne Dezimalstellen.+/-79,228,162,514,264,337,593,543,950,335 for zero-scaled numbers, that is, numbers with no decimal places. Für Zahlen mit 28 Dezimalstellen ist der Bereich 7,9228162514264337593543950335.For numbers with 28 decimal places, the range is +/-7.9228162514264337593543950335. Die kleinstmögliche Zahl ungleich NULL ist 0,0000000000000000000000000001.The smallest possible non-zero number is 0.0000000000000000000000000001.
CIntCInt IntegerInteger -32.768 bis 32.767; Brüche werden gerundet.-32,768 to 32,767; fractions are rounded.
CLngCLng LongLong -2.147.483.648 bis 2.147.483.647; Brüche werden gerundet.-2,147,483,648 to 2,147,483,647; fractions are rounded.
CLngLngCLngLng Function LongLongLongLong -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807; Brüche werden gerundet.-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807; fractions are rounded. (Nur auf 64-Bit-Plattformen gültig.)(Valid on 64-bit platforms only.)
CLngPtrCLngPtr Function LongPtrLongPtr -2.147.483.648 bis 2.147.483.647 auf 32-Bit-Systemen -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 auf 64-Bit-Systemen; Brüche werden für 32-Bit- und 64-Bit-Systeme gerundet.-2,147,483,648 to 2,147,483,647 on 32-bit systems, -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 on 64-bit systems; fractions are rounded for 32-bit and 64-bit systems.
CSngCSng SingleSingle -3,402823E38 bis -1,401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E38 für positive Werte.-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values.
CStrCStr StringString Rückgaben für CStr sind vom expression-Argument abhängig.Returns for CStr depend on the expression argument.
CVarCVar VariantVariant Gleicher Bereich wie Double für numerische Werte.Same range as Double for numerics. Same range as String for non-numerics. Gleicher Bereich wie String für nicht numerische Werte.Same range as Double for numerics. Same range as String for non-numerics.

HinweiseRemarks

Wenn der an die Funktion übergebene Ausdruck außerhalb des Bereichs des Datentyps liegt, in den er konvertiert werden soll, tritt ein Fehler auf.If the expression passed to the function is outside the range of the data type being converted to, an error occurs.

Hinweis

Konvertierungsfunktionen müssen verwendet werden, um LongLong (einschließlich LongPtr auf 64-Bit-Plattformen) kleineren ganzzahligen Typen zuzuweisen.Conversion functions must be used to explicitly assign LongLong (including LongPtr on 64-bit platforms) to smaller integral types. Implizite Umwandlungen von LongLong -Ausdrücken auf kleinere Integrale sind nicht zulässig.Implicit conversions of LongLong to smaller integrals are not allowed.

Im Allgemeinen können Sie Ihren Code mithilfe der Funktionen zur Umwandlung des Datentyps so dokumentieren, dass angezeigt wird, dass das Ergebnis eines Vorgangs als bestimmter Datentyp und nicht als Standard-Datentyp angezeigt werden soll.In general, you can document your code using the data-type conversion functions to show that the result of some operation should be expressed as a particular data type rather than the default data type. Verwenden Sie beispielsweise CCur, um Währungsarithmetik zu erzwingen, wenn normalerweise Arithmetik mit einfacher Genauigkeit, doppelter Genauigkeit oder einer ganzen Zahl auftreten würde.For example, use CCur to force currency arithmetic in cases where single-precision, double-precision, or integer arithmetic normally would occur.

Sie sollten die Typkonvertierungsfunktionen anstelle von Val verwenden, um international offene Konvertierungen von einem Datentyp in einen anderen bereitzustellen.You should use the data-type conversion functions instead of Val to provide internationally aware conversions from one data type to another. Wenn Sie beispielsweise CCur verwenden, werden unterschiedliche Dezimaltrennzeichen, unterschiedliche Tausendertrennzeichen und verschiedene Währungsoptionen je nach der Gebietsschemaeinstellung Ihres Computers korrekt erkannt.For example, when you use CCur, different decimal separators, different thousand separators, and various currency options are properly recognized depending on thelocale setting of your computer.

Wann ist der Bruchteil genau 0,5 beträgt, wird dieser von CInt und CLng immer auf die nächste gerade Zahl gerundet.When the fractional part is exactly 0.5, CInt and CLng always round it to the nearest even number. Beispielsweise wird 0,5 auf 0 und 1,5 auf 2 gerundet.For example, 0.5 rounds to 0, and 1.5 rounds to 2. CInt und CLng unterscheiden sich von der [Fix- und Int-Funktion]((../../Reference/User-Interface-Help/int-fix-functions.md), bei denen der Bruchteil einer Zahl abgeschnitten und nicht gerundet wird.CInt and CLng differ from the Fix and Int functions, which truncate, rather than round, the fractional part of a number. Außerdem geben Fix und Int immer einen Wert desselben Typs zurück, der auch übergeben wurde.Also, Fix and Int always return a value of the same type as is passed in.

Verwenden Sie die IsDate-Funktion, um zu ermitteln, ob date in ein Datum oder eine Uhrzeit konvertiert werden kann.Use the IsDate function to determine if date can be converted to a date or time. CDate erkennt Datumsliterale und Uhrzeitliterale sowie einige Zahlen, die in den Bereich zulässiger Datumsangaben fallen.CDate recognizesdate literals and time literals as well as some numbers that fall within the range of acceptable dates. Beim Konvertieren einer Zahl in ein Datum, wird der ganzzahlige Teil in ein Datum umgewandelt.When converting a number to a date, the whole number portion is converted to a date. Bruchteile der Zahl werden in eine Uhrzeit umgewandelt, beginnend mit Mitternacht.Any fractional part of the number is converted to a time of day, starting at midnight.

CDate erkennt Datumsformate entsprechend den Gebietsschemaeinstellungen Ihres Systems.CDate recognizes date formats according to the locale setting of your system. Die richtige Reihenfolge von Tag, Monat und Jahr kann möglicherweise nicht festgestellt werden, wenn sie in einem Format eingegeben wird, das nicht einer der erkannten Datumseinstellungen entspricht.The correct order of day, month, and year may not be determined if it is provided in a format other than one of the recognized date settings. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch die Zeichenfolge für den Wochentag enthält.In addition, a long date format is not recognized if it also contains the day-of-the-week string.

Eine CVDate-Funktion wird auch zum Zwecke der Kompatibilität mit früheren Versionen von Visual Basic bereitgestellt.A CVDate function is also provided for compatibility with previous versions of Visual Basic. Die Syntax der CVDate-Funktion ist identisch mit der CDate-Funktion; CVDate gibt jedoch Variant zurück, dessen Untertyp Date anstelle eines tatsächlichen Date-Typs ist.The syntax of the CVDate function is identical to the CDate function, however, CVDate returns a Variant whose subtype is Date instead of an actual Date type. Da es nun einen systeminternen Date-Typ gibt, ist CVDate nicht erforderlich.Since there is now an intrinsic Date type, there is no further need for CVDate. Derselbe Effekt kann erzielt werden, indem ein Ausdruck in Date konvertiert und diesem dann Variant zugewiesen wird.The same effect can be achieved by converting an expression to a Date, and then assigning it to a Variant. Diese Vorgehensweise entspricht der Umwandlung aller anderen systeminternen Typen in ihre entsprechenden Variant-Untertypen.This technique is consistent with the conversion of all other intrinsic types to their equivalent Variant subtypes.

Hinweis

Die CDec -Funktion gibt keinen einzelnen Datentyp zurück; stattdessen gibt sie stets eine Variante zurück, deren Wert in einen Decimal -Subtyp umgewandelt wurde.The CDec function does not return a discrete data type; instead, it always returns a Variant whose value has been converted to a Decimal subtype.

Beispiel zur CBool-FunktionCBool Function Example

Dieses Beispiel verwendet die CBool-Funktion, um einen Ausdruck in Boolean zu konvertieren.This example uses the CBool function to convert an expression to a Boolean. Wenn der Ausdruck in einen Wert ungleich NULL ausgewertet wird, gibt CBool true, andernfalls wird false zurückgegeben.If the expression evaluates to a nonzero value, CBool returns True; otherwise, it returns 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. 

Beispiel zur CByte-FunktionCByte Function Example

Dieses Beispiel verwendet die CByte-Funktion, um einen Ausdruck in Byte zu konvertieren.This example uses the CByte function to convert an expression to a Byte.

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

Beispiel zur CCur-FunktionCCur Function Example

Dieses Beispiel verwendet die CCur-Funktion, um einen Ausdruck in Currency zu konvertieren.This example uses the CCur function to convert an expression to a 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). 

Beispiel zur CDate-FunktionCDate Function Example

Dieses Beispiel verwendet die CDate-Funktion, um einen Ausdruck in Date zu konvertieren.This example uses the CDate function to convert a string to a Date. Im Allgemeinen wird das Hartcodieren von Datums- und Uhrzeitangaben als Zeichenfolgen (wie in diesem Beispiel dargestellt) nicht empfohlen.In general, hard-coding dates and times as strings (as shown in this example) is not recommended. Verwenden Sie stattdessen Datums- und Uhrzeitliterale, z. B. #2/12/1969# und #4:45:23 PM#.Use date literals and time literals, such as #2/12/1969# and #4:45:23 PM#, instead.

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

Beispiel zur CDbl-FunktionCDbl Function Example

Dieses Beispiel verwendet die CDbl-Funktion, um einen Ausdruck in Double zu konvertieren.This example uses the CDbl function to convert an expression to a Double.

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

Beispiel zur CDec-FunktionCDec Function Example

Dieses Beispiel verwendet die CDec -Funktion, um einen numerischen Wert in Decimal zu konvertieren.This example uses the CDec function to convert a numeric value to a Decimal.

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

Beispiel zur CInt-FunktionCInt Function Example

Dieses Beispiel verwendet die CInt-Funktion, um einen numerischen Wert in Integer zu konvertieren.This example uses the CInt function to convert a value to an Integer.

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

Beispiel zur CLng-FunktionCLng Function Example

Dieses Beispiel verwendet die CLng-Funktion, um einen numerischen Wert in Long zu konvertieren.This example uses the CLng function to convert a value to a 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. 

Beispiel zur CSng-FunktionCSng Function Example

Dieses Beispiel verwendet die CSng-Funktion, um einen numerischen Wert in Single zu konvertieren.This example uses the CSng function to convert a value to a 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. 

Beispiel zur CStr-FunktionCStr Function Example

Dieses Beispiel verwendet die CStr -Funktion, um einen numerischen Wert in String zu konvertieren.This example uses the CStr function to convert a numeric value to a String.

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


Beispiel zur CVar-FunktionCVar Function Example

Dieses Beispiel verwendet die CVar-Funktion, um einen Ausdruck in Variant zu konvertieren.This example uses the CVar function to convert an expression to a Variant.

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

Siehe auchSee also