Typen conversiefuncties

       

Elke functie converteert een expressie naar een bepaald gegevenstype.

Syntaxis

CBool(expressie)

CByte(expressie)

CCur(expressie)

CDate(expressie)

CDbl(expressie)

CDec(expressie)

CInt(expressie)

CLng(expressie)

CSng(expressie)

CStr(expressie)

CVar(expressie)

Het vereiste argument expressie kan elke geldige tekenreeksexpressie of numerieke expressie zijn.

Resultaattypen

De functienaam bepaalt het resultaattype, zoals hieronder wordt weergegeven:

Functie Resultaattype Bereik voor het argument expressie
CBool
Boolean Elke geldige tekenreeks- of numerieke expressie.
CByte Byte 0 tot en met 255.
CCur Currency -922,337,203,685,477.5808 tot en met 922,337,203,685,477.5807.
CDate Date Elke geldige datumexpressie.
CDbl Double -1,79769313486232E308 tot en met
-4,94065645841247E-324 voor negatieve waarden; 4,94065645841247E-324 tot 1,79769313486232E308 voor positieve waarden.
CDec Decimal +/-79.228.162.514.264.337.593.543.950.335 voor getallen zonder decimalen achter de komma. Voor getallen met 28 decimalen is het bereik
+/-7,9228162514264337593543950335. Het kleinst mogelijke getal (behalve nul) is 0,0000000000000000000000000001.
CInt Integer -32.768 tot en met 32.767; breuken worden afgerond.
CLng Long -2.147.483.648 tot en met 2.147.483.647; breuken worden afgerond.
CSng Single -3,402823E38 tot en met -1,401298E-45 voor negatieve waarden; 1,401298E-45 tot en met 3,402823E38 voor positieve waarden.
CStr String Resultaatwaarden voor CStr zijn afhankelijk van het argument expressie.
CVar Variant Hetzelfde bereik als Double voor numerieke waarden. Hetzelfde bereik als String voor niet-numerieke waarden.

Notities

Er treedt een fout op als expressie buiten het bereik ligt dat geldt voor het gegevenstype waarnaar wordt geconverteerd.

Vaak kunt u uw programmacode duidelijker maken door met de conversiefuncties voor gegevenstypen aan te geven dat het resultaat van een bewerking niet het standaardgegevenstype moet zijn, maar een ander gegevenstype. U gebruikt bijvoorbeeld CCur om een valutawaarde op te vragen in plaats van een integer of een waarde met enkelvoudige of dubbele precisie.

Gebruik de conversiefuncties van de gegevenstypen in plaats van Val om een willekeurig gegevenstype te converteren naar een ander gegevenstype in overeenstemming met de internationale kenmerken. De verschillende decimale scheidingstekens, scheidingstekens voor duizendtallen en valutatekens worden, afhankelijk van de lokale instellingen op uw computer, juist herkend als u bijvoorbeeld CCur gebruikt.

Als een decimaal getal precies 0,5 is, wordt dit door CInt en CLng altijd afgerond naar het dichtstbijzijnde even getal. 0,5 wordt bijvoorbeeld afgerond naar 0, en 1,5 naar 2. CInt en CLng zijn niet hetzelfde als de functies Fix en Int die decimale getallen afkappen in plaats van afronden. Daarnaast geven Fix en Int altijd eenzelfde type als wat is opgegeven als resultaat.

Gebruik de functie IsDate om te bepalen of date kan worden geconverteerd naar een datum of tijd. Letterlijke datumreeksen, letterlijke tijdreeksen en sommige getallen die binnen het geldige datumbereik vallen, worden door CDate herkend. Bij het converteren van een getal naar een datum wordt het gedeelte voor de komma naar een datum geconverteerd. Het gedeelte achter de komma (indien aanwezig) wordt geconverteerd naar een tijd, waarbij de telling begint om 12 uur 's nachts

Op basis van de lokale instellingen op uw computer wordt de datumnotatie herkend door CDate. Wanneer u de datum typt in een andere notatie dan een van de bekende datumnotaties, kan de juiste volgorde van dag, maand en jaar waarschijnlijk niet worden vastgesteld. Een lange datumnotatie die ook een dagtekenreeks bevat, wordt evenmin herkend.

Ter wille van de compatibiliteit met vorige versies van Visual Basic is ook de functie CVDate beschikbaar. De syntaxis van de functie CVDate is gelijk aan die van de functie CDate. Het verschil is echter dat CVDate geen gegevenstype Date als resultaat geeft, maar een Variant met het subtype Date. CVDate is echter overbodig geworden, omdat er nu een intrinsiek gegevenstype Date is. Hetzelfde gebeurt als u een expressie converteert naar het type Date en daar vervolgens een Variant aan toewijst. Op dezelfde manier worden alle andere intrinsieke typen geconverteerd naar hun Variant-subtypen.

Opmerking De functie CDec geeft geen discreet gegevenstype als resultaat, maar altijd een Variant waarvan de waarde is geconverteerd naar een subtype Decimal.