Funciones de conversión
 

Las funciones de conversión permiten cambiar el tipo de la variable.

VBScript asigna el tipo de variable "Variant" a todas las variables por defecto,
pero existen muchos casos donde se debe convertir una variable a un tipo particular
para satisfacer un argeumento.

He aquí las funciones de conversión más utilizadas:
 

CDate(fecha)

El argumento fecha es cualquier expresión de fecha válida.

Observaciones

Utilice la función IsDate para determinar si la fecha se puede convertir en una fecha o una hora. CDate reconoce literales de fecha y literales de hora así como algunos números que están dentro del intervalo de fechas aceptables. Cuando se convierte un número en una fecha, toda la parte del número se convierte en una fecha. Cualquier parte fraccional del número se convierte en una hora del día, a partir de medianoche.

CDate reconoce formatos de fecha según la configuración regional de su sistema. Puede que no se determine el orden correcto del día, mes y año si se proporciona en un formato diferente del de una de las configuraciones de fecha reconocidas. Además, no se reconocerá un formato de fecha largo si también contiene la cadena del día de la semana.

El siguiente ejemplo utiliza la función CDate para convertir una cadena en una fecha. En general, no se recomiendan el uso de fechas y horas como cadenas (como se muestra en este ejemplo). Utilice los literales de fecha y hora (como #10/19/1962#, #4:45:23 PM#) en su lugar.

MiFecha  = "19 de Octubre de 1962"   ' Define una fecha.
MiFechaCorta = CDate(MiFecha )        ' Convierte en tipo de datos Date.
MiHora = "4:35:47 PM"              ' Define una hora.
MiHoraCorta = CDate(MiHora)        ' Convierte en tipo de datos Date.

 

CStr(expresión)
Convierte a formato cadena

El argumento expresión es cualquier expresión válida.

Observaciones
En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice CStr para forzar el resultado que se va a expresar como String.

Debe utilizar la función CStr en lugar de Str para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo String. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema.

Los datos de expresión determinan lo que se devuelve según la siguiente tabla:

 

Si expresión es CStr devuelve
Boolean Una cadena que contiene True o False.
Date Una cadena que contiene una fecha en el formato de fecha corto de su sistema.
Null Un error en tiempo de ejecución.
Empty Una cadena de longitud cero ("").
Error Una cadena que contiene la palabra Error seguida del número de error.
Otro numérico Una cadena que contiene el número


El siguiente ejemplo utiliza la función CStr para convertir un valor numérico en un tipo String:

Dim MiDouble, MiCadena
MiDouble = 437.324 ' MiDouble es de tipo Double.
MiCadena = CStr(MiDouble) ' MiCadena contiene "437.324".

 

CBool(expresión)

Devuelve una expresión que se ha convertido en tipo Variant de subtipo Boolean.

El argumento expresión es cualquier expresión válida.

Observaciones:

Si expresión es cero, se devuelve False; si no, se devuelve True. Si expresión no se puede interpretar como un valor numérico, se produce un error en tiempo de ejecución.

El siguiente ejemplo utiliza la función CBool para convertir una expresión en Boolean. Si la expresión se evalúa como un valor distinto de cero, CBool devuelve True; si no, devuelve False.

Dim A, B, Comprobar
A = 5: B = 5            ' Inicializa variables.
Comprobar = CBool(A = B)    ' Comprueba si contiene True.
A = 0                   ' Define variable.
Comprobar = CBool(A)        ' Comprueba si contiene False.


CByte(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice CByte para forzar un valor aritmético de tipo byte en los casos en que normalmente aparecen valores aritméticos de moneda, precisión simple, precisión doble o entero.

Utilice la función CByte para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Byte. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema, de la misma manera que los separadores de miles.

Si expresión queda fuera del intervalo apropiado para el subtipo Byte, se produce un error. El siguiente ejemplo utiliza la función CByte para convertir una expresión en un byte:

Dim MiDouble, MiByte
MiDouble = 125.5678         ' MiDouble es de tipo Double.
MiByte = CByte(MiDouble)    ' MiByte contiene 126.


CCur(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice CCur para forzar un valor aritmético de tipo currency en los casos en que normalmente aparecen valores aritméticos de tipo entero.

Debería utilizar la función CCur para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Currency Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema.

El siguiente ejemplo utiliza la función CCur para convertir una expresión en tipo Currency:

Dim MiDouble, MiCurr
MiDouble = 543.214588         ' MiDouble es de tipo Double.
MiCurr = CCur(MiDouble * 2)   ' Convierte el resultado de multiplicar MiDouble por 2 (1086.429176) en tipo Currency (1086.4292



CDbl(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice CDbl o CSng para forzar un valor aritmético de tipo precisión doble o precisión simple en los casos en que normalmente aparecen valores aritméticos de moneda o entero.

Utilice la función CDbl para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Double. Por ejemplo, los distintos separadores decimales y de miles se reconocen apropiadamente según la configuración regional de su sistema.

Este ejemplo utiliza la función CDbl para convertir una expresión en un tipo Double.

Dim MiCurr, MiDouble
MiCurr = CCur(234.456784)               ' MiCurr es de tipo Currency (234.4567).
MiDouble = CDbl(MiCurr * 8.2 * 0.01)    ' Convierte el resultado en tipo Double (19.2254576).



CInt(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice Clnt o CLng para forzar un valor aritmético de tipo entero en los casos en que normalmente aparecen valores aritméticos de moneda, precisión simple o precisión doble.

Utilice la función CInt para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Integer. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema, de la misma manera que los separadores de miles.

Si expresión queda fuera del intervalo apropiado para el subtipo Integer, se produce un error.

El siguiente ejemplo utiliza la función CInt para convertir un valor en un tipo Integer:

Dim MiDouble, MiInt
MiDouble = 2345.5678      ' MiDouble es de tipo Double.
MiInt = CInt(MiDouble)    ' MiInt contiene 2346.

Nota:   CInt difiere de las funciones Fix e Int, que truncan, más que redondean, la parte fraccional de un número. Cuando la parte fraccional es exactamente 0,5 la función CInt la redondea siempre al número par más cercano. Por ejemplo, 0,5 se redondea a 0 y 1,5 se redondea a 2.


 

CSng(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones
En general, puede documentar su código mediante las funciones de conversión de tipos de datos para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice CDbl o CSng para forzar un valor aritmético de tipo precisión doble o precisión simple en los casos en que normalmente aparecen valores aritméticos de moneda o entero.

Utilice la función CSng para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Single. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema, de la misma manera que los separadores de miles.

Si expresión queda fuera del intervalo aceptable para el subtipo Single, se produce un error.

El siguiente ejemplo utiliza la función CSng para convertir un valor en tipo Single:

Dim MiDouble1, MiDouble2, MiSingle1, MiSingle2 ' MiDouble1 y MiDouble2 son de tipo Double.
MiDouble1 = 75.3421115: MiDouble2 = 75.3421555
MiSingle1 = CSng(MiDouble1) ' MiSingle1 contiene 75.34211.
MiSingle2 = CSng(MiDouble2) ' MiSingle2 contiene 75.34216.


CLng(expresión)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice Clnt o CLng para forzar un valor aritmético de tipo entero en los casos en que normalmente aparecen valores aritméticos de moneda, precisión simple o precisión doble.

Utilice la función CLng para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Long. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema, de la misma manera que los separadores de miles.

Si expresión queda fuera del intervalo aceptable para el subtipo Long, se produce un error.

El siguiente ejemplo utiliza la función CLng para convertir un valor en tipo Long:

Dim MiVal1, MiVal2, MiLong1, MiLong2
MiVal1 = 25427.45: MiVal2 = 25427.55   ' MiVal1 y MiVal2 son de tipo Double.
MiLong1 = CLng(MiVal1)    ' MiLong1 contiene 25427.
MiLong2 = CLng(MiVal2)    ' MiLong2 contiene 25428.

Nota:   CLng difiere de las funciones Fix e Int, que truncan, más que redondean, la parte fraccional de un número. Cuando la parte fraccional es exactamente 0,5 la función CLng la redondea siempre al número par más cercano. Por ejemplo, 0,5 se redondea a 0 y 1,5 se redondea a 2.



    Int(Numero), Fix(Numero)

El argumento expresión es cualquier expresión válida.

Observaciones

En general, puede documentar su código mediante las funciones de conversión de subtipo para mostrar que el resultado de alguna operación se debe expresar como un tipo de dato particular en vez de como el tipo de dato predeterminado. Por ejemplo, utilice Clnt o CLng para forzar un valor aritmético de tipo entero en los casos en que normalmente aparecen valores aritméticos de moneda, precisión simple o precisión doble.

Utilice la función CLng para proporcionar conversiones de tipo internacional de cualquier otro tipo de datos a un subtipo Long. Por ejemplo, los distintos separadores decimales se reconocen apropiadamente según la configuración regional de su sistema, de la misma manera que los separadores de miles.

Si expresión queda fuera del intervalo aceptable para el subtipo Long, se produce un error.

El siguiente ejemplo utiliza la función CLng para convertir un valor en tipo Long:

Dim MiVal1, MiVal2, MiLong1, MiLong2
MiVal1 = 25427.45: MiVal2 = 25427.55   ' MiVal1 y MiVal2 son de tipo Double.
MiLong1 = CLng(MiVal1)    ' MiLong1 contiene 25427.
MiLong2 = CLng(MiVal2)    ' MiLong2 contiene 25428.

Nota:  CLng difiere de las funciones Fix e Int, que truncan, más que redondean, la parte fraccional de un número. Cuando la parte fraccional es exactamente 0,5 la función CLng la redondea siempre al número par más cercano. Por ejemplo, 0,5 se redondea a 0 y 1,5 se redondea a 2.