Cada función convierte una expresión a un tipo de datos específico.
Sintaxis
CBool(expresión), CByte(expresión), CCur(expresión), CDate(expresión), CDbl(expresión), CDec(expresión), CInt(expresión), CLng(expresión), CSng(expresión), CStr(expresión), CVar(expresión)
El argumento obligatorio expresión es cualquier expresión de cadena o expresión numérica.
Tipos devueltos
El nombre de la función determina el tipo devuelto, como se muestra a continuación:
Función |
Tipo devuelto |
Intervalo del argumento expresión |
Cbool |
Cualquier expresión de cadena o numérica
válida. |
|
Cbyte |
0 a 255. |
|
Ccur |
-922.337.203.685.477,5808 a
922.337.203.685.477,5807. |
|
Cdate |
Cualquier expresión de fecha. |
|
CDbl |
-1,79769313486232E308 a |
|
Cdec |
+/-79.228.162.514.264.337.593.543.950.335
para números basados en cero, es decir, números sin decimales. Para números
con 28 decimales, el intervalo es |
|
Cint |
-32.768 a 32.767; las fracciones se
redondean. |
|
CLng |
-2.147.483.648 a 2.147.483.647; las
fracciones se redondean. |
|
CSng |
-3,402823E38 a -1,401298E-45 para valores
negativos; 1,401298E-45 a 3,402823E38 para valores positivos. |
|
CStr |
El mismo intervalo que Double para
valores numéricos. El mismo intervalo que String para valores no
numéricos. |
|
Cvar |
El
valor de retorno de CStr depende del argumento expresión. |
Comentarios
Si la expresión del argumento expresión que se pasa a la función está fuera del intervalo del tipo de dato al que se va a convertir, se produce un error.
En general, el código se puede documentar utilizando las funciones de conversión de tipos de datos para indicar que el resultado de alguna de las operaciones se debería expresar como un tipo de datos en particular, no como el tipo de datos predeterminado. Por ejemplo, utilice Ccur para forzar la ejecución de operaciones con aritmética monetaria en los casos en los que se haría con precisión simple, doble precisión o aritmética entera.
Debe utilizar funciones de conversión de tipos en lugar de Val para proporcionar conversiones que reconozcan las variantes internacionales. Por ejemplo, cuando utiliza CCur, se reconocen diferentes separadores decimales, diferentes separadores de millares y varias opciones monetarias dependiendo de la configuración regional establecida en su equipo.
Cuando la parte fraccionaria es exactamente 0,5, CInt y CLng siempre redondean al número par más cercano. Por ejemplo, 0,5 redondea a 0, y 1,5 redondea a 2. CInt y CLng se diferencian de las funciones Fix y Int en que truncan, en lugar de redondear, la parte fraccionaria de un número. Además, Fix y Int siempre devuelven un valor del mismo tipo del que se le pasa.
Utilice la función IsDate para determinar si se puede convertir date a una fecha o una hora. CDate reconoce literales de fecha y literales de hora además de números comprendidos dentro del intervalo de fechas aceptables. Al convertir un número a una fecha, la parte numérica entera se convierte a una fecha. Cualquier parte fraccionaria del número se convierte a la hora del día, comenzando a medianoche.
CDate reconoce formatos de fecha que se ajusten a la configuración regional de su sistema. Es posible que no se determine el orden correcto del día, mes y año si se proporciona en un formato diferente del que reconoce la configuración de fecha. Además, no se puede reconocer un formato de fecha largo si contiene la cadena del día de la semana.
Se proporciona una función CVDate por compatibilidad con versiones anteriores de Visual Basic. La sintaxis de la función CVDate es idéntica a la de la función CDate; sin embargo, CVDate devuelve un Variant de subtipo Date en lugar del tipo Date real. Puesto que ahora hay un tipo de dato intrínseco Date, no es necesario CVDate. Se puede observar el mismo efecto al convertir una expresión a Date y asignarla después a un Variant. Esta técnica es coherente con la conversión de todos los demás tipos intrínsecos a sus equivalentes subtipos Variant.
Nota La función CDec no devuelve un tipo de dato discreto; en su lugar, siempre devuelve un Variant con los valores convertidos a un subtipo Decimal.