Está en la página 1de 21

Funciones de conversión de tipos (Visual Basic)

Visual Studio 2013

Estas funciones se compilan en línea, es decir, el código de conversión forma parte del código
que evalúa la expresión.A veces no se produce una llamada a un procedimiento para realizar la
conversión, lo que mejora el rendimiento.Cada función convierte una expresión a un tipo de
datos específico.

Copiar
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)
Parte

expression

Obligatorio.Cualquier expresión del tipo de


datos de origen.

Tipo de datos del valor devuelto

El nombre de función determina el tipo de datos del valor devuelto, como se muestra en la
tabla siguiente.

Nombre Tipo de
de la datos Intervalo de valores del argumento expression
función devuelto
Boolean
(Tipo de
CBool datos, Cualquier expresión numérica, Char o String válida.
Visual
Basic)
CByte Byte (Tipo 0 a 255 (sin signo); las partes fraccionarias se redondean.1
de datos,
Visual
Basic)
Char (Tipo
Cualquier expresión Char o String válida; sólo se convierte el primer
de datos,
CChar carácter de String; el valor puede estar comprendido entre 0 y 65535
Visual
(sin signo).
Basic)
Date (Tipo
de datos,
CDate Cualquier representación válida de fecha y hora.
Visual
Basic)
Double
(Tipo de de -1,79769313486231570E+308 a -4,94065645841246544E-324
CDbl datos, para valores negativos; de 4,94065645841246544E-324 a
Visual 1,79769313486231570E+308 para valores positivos.
Basic)
Decimal +/-79.228.162.514.264.337.593.543.950.335 para números a partir de
(Tipo de cero, es decir, números sin decimales.Para números con 28 posiciones
CDec datos, decimales, el intervalo es +/-7,9228162514264337593543950335.El
Visual menor número posible distinto de cero es
Basic) 0,0000000000000000000000000001 (+/-1E-28).
Integer
(Tipo de
de -2.147.483.648 a 2.147.483.647; las partes fraccionarias se
CInt datos,
redondean.1
Visual
Basic)
Long (Tipo
de datos, de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807; las
CLng
Visual partes fraccionarias se redondean.1
Basic)
Object
CObj (Tipo de Cualquier expresión válida.
datos)
SByte (Tipo
de datos,
CSByte de -128 a 127; las partes fraccionarias se redondean.1
Visual
Basic)
Short (Tipo
de datos,
CShort de -32.768 a 32.767; las partes fraccionarias se redondean.1
Visual
Basic)
Single
De -3,402823E+38 a –1,401298E-45 para valores negativos; de
CSng (Tipo de
1,401298E-45 a 3,402823E+38 para valores positivos.
datos,
Visual
Basic)
String (Tipo
de datos, Los valores devueltos para CStr dependen del argumento
CStr
Visual expression.Vea Valores devueltos para la función CStr (Visual Basic).
Basic)
UInteger
de 0 a 4.294.967.295 (sin signo); las partes fraccionarias se
CUInt (Tipo de
redondean.1
datos)
ULong
(Tipo de
de 0 a 18.446.744.073.709.551.615 (sin signo); las partes fraccionarias
CULng datos,
se redondean.1
Visual
Basic)
UShort
(Tipo de
CUShort datos, de 0 a 65.535 (sin signo); las partes fraccionarias se redondean.1
Visual
Basic)

1 Las partes fraccionarias pueden estar sujetas a un tipo especial de redondeo denominado
redondeo bancario.Vea "Comentarios" para obtener más información.

Comentarios

Por regla general, debe utilizar preferentemente las funciones de conversión de tipos de Visual
Basic que los métodos de .NET Framework, como ToString(), en la clase Convert o en una
clase o estructura individual de tipos.Las funciones de Visual Basic se han diseñado para que
interactúen de forma óptima con el código de Visual Basic; además hacen que el código fuente
sea más corto y fácil de leer.Asimismo, los métodos de conversión de .NET Framework no
siempre producen los mismos resultados que las funciones de Visual Basic, por ejemplo
cuando se convierte de Boolean a Integer.Para obtener más información, vea Solucionar
problemas de tipos de datos (Visual Basic).

Comportamiento

 Conversión. En general, puede utilizar las


funciones de conversión de tipos de datos
para convertir el resultado de una
operación a un tipo de datos concreto en
vez de al tipo de datos predeterminado.Por
ejemplo, utilice CDec para forzar la
ejecución de operaciones con aritmética
decimal en los casos en los que se haría
con precisión sencilla, doble precisión o
aritmética de enteros.
 Conversiones incorrectas. Si el argumento
expression transferido a la función está
fuera del intervalo de valores del tipo de
datos al que se va a convertir, se inicia una
excepción OverflowException.
 Partes fraccionarias. Cuando un valor no
integral se convierte a un tipo entero, las
funciones de conversión de enteros (CByte,
CInt, CLng, CSByte, CShort, CUInt,
CULng y CUShort) quitan la parte
fraccionaria y redondean el valor al entero
más próximo.

Si la parte fraccionaria es exactamente 0,5,


las funciones de conversión de enteros lo
rodean al entero par más próximo.Por
ejemplo, 0,5 se redondea a 0 y 1,5 y 2,5 se
redondean a 2.Esto se denomina redondeo
bancario a veces y su propósito es
compensar una tendencia que se podría
acumular al sumar muchos de estos
números.

CInt y CLng difieren de las funciones Int y


Fix, en que, en lugar de redondear, truncan
la parte fraccionaria de un
número.Además, Fix e Int siempre
devuelven un valor del mismo tipo de datos
que reciben.

 Conversiones de fecha y hora. Utilice la


función IsDate para determinar si un valor
se puede convertir en una fecha y
hora.CDate reconoce literales de fecha y
literales de tiempo pero no valores
numéricos.Para convertir un valor Date de
Visual Basic 6.0 en un valor Date en
Visual Basic 2005 o versiones posteriores,
puede utilizar el método
DateTime.FromOADate.
 Valores de fecha u hora neutrales. El tipo
de datos Date (Tipo de datos, Visual Basic)
contiene siempre información de fecha y
hora.Para la conversión de tipos, Visual
Basic considera 1/1/0001 (1 de enero del
año 1) un valor neutral de fecha y 00:00:00
(medianoche) un valor neutral de hora.Si se
convierte un valor Date a una cadena, CStr
no incluye valores neutrales en la cadena
resultante.Por ejemplo, si se convierte
#January 1, 0001 9:30:00# en una cadena,
el resultado sería "9:30:00 a.m.", ya que la
información de fecha se omite.Sin
embargo, la información de fecha
permanece presente en el valor de Date
original y se puede recuperar mediante
funciones como DatePart.
 Distinción de referencias culturales. Las
funciones de conversión de tipos que
implican cadenas realizan las conversiones
en función de la configuración de la
referencia cultural actual de la
aplicación.Por ejemplo, CDate reconoce
formatos de fecha de acuerdo con la
configuración regional del sistema.Debe
suministrar el día, mes y año en el orden
correcto para la configuración regional; de
no hacerlo así, es posible que la fecha no se
interprete de forma correcta.No se puede
reconocer un formato de fecha largo si
contiene la cadena del día de la semana,
por ejemplo “Miércoles”.

Si necesita convertir una representación de


cadena de un valor en un formato diferente
al especificado por la configuración
regional, no puede utilizar las funciones de
conversión de tipos de Visual Basic.Para
ello, utilice los métodos
ToString(IFormatProvider) y Parse(String,
IFormatProvider) de ese tipo de valor.Por
ejemplo, utilice Double.Parse cuando
convierte una cadena a un valor de tipo
Double y utilice Double.ToString cuando
convierta un valor de tipo Double en una
cadena.

CType (Función)
La función CType toma un segundo argumento, typename, y convierte expression en
typename, donde typename puede ser cualquier tipo de datos, estructura, clase o interfaz para
la que exista una conversión válida.

Para una comparación de CType con las otras palabras clave de conversión de tipos, vea
DirectCast (Operador) (Visual Basic) y TryCast (Operador) (Visual Basic).

Ejemplo de la función CBool

En este ejemplo se utiliza la función CBool para convertir expresiones en valores Boolean.Si
una expresión se evalúa en un valor distinto de cero, CBool devuelve True; en caso contrario,
devuelve False.

VB
Copiar
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)

Ejemplo de la función CByte

En este ejemplo se utiliza la función CByte para convertir expresiones en Byte.

VB
Copiar
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)

Ejemplo de la función CChar

En el ejemplo siguiente se utiliza la función CChar para convertir el primer carácter de una
expresión String en un tipo Char.

VB
Copiar
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)

El argumento de entrada para CChar debe pertenecer al tipo de datos Char o String.No puede
utilizar CChar para convertir un número en un carácter, porque CChar no acepta un tipo de
datos numéricos.En el ejemplo siguiente se obtiene un número que representa un punto de
código (código de carácter) y se convierte al carácter correspondiente.En el ejemplo se utiliza
la función InputBox para obtener la cadena de dígitos, CInt para convertir la cadena en el tipo
Integer y ChrW para convertir el número en el tipo Char.

VB
Copiar
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)

Ejemplo de la función CDate

En este ejemplo se utiliza la función CDate para convertir cadenas en valores Date.En general,
no se recomienda especificar las fechas y horas como cadenas en el código, tal y como se
puede ver en este ejemplo.Utilice literales de fecha y hora, por ejemplo #Feb 12, 1969# y
#4:45:233 p.m.#.

VB
Copiar
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)

Ejemplo del algoritmo CDbl


VB
Copiar
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)

Ejemplo de la función CDec

En el siguiente ejemplo se utiliza la función CDec para convertir un valor numérico en


Decimal.

VB
Copiar
Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' The following line of code sets aDecimal to 10000000.0587.
aDecimal = CDec(aDouble)

Ejemplo de la función CInt

En este ejemplo se utiliza la función CInt para convertir un valor a Integer.

VB
Copiar
Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)

Ejemplo del algoritmo CLng

En el ejemplo siguiente se utiliza la función CLng para convertir valores a Long.

VB
Copiar
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)

Ejemplo de la función CObj

En el siguiente ejemplo se utiliza la función CObj para convertir un valor numérico en


Object.La variable Object en sí contiene sólo un puntero de cuatro bytes, que señala al valor
Double que tiene asignado.

VB
Copiar
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)

Ejemplo de CSByte

En el siguiente ejemplo se utiliza la función CSByte para convertir un valor numérico en


SByte.

VB
Copiar
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)

Ejemplo de la función CShort

En el siguiente ejemplo se utiliza la función CShort para convertir un valor numérico en Short.

VB
Copiar
Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)

Ejemplo del algoritmo CSng

En el ejemplo siguiente se utiliza la función CSng para convertir valores a Single.

VB
Copiar
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)

Ejemplo del algoritmo CStr

En el siguiente ejemplo se utiliza la función CStr para convertir un valor numérico en String.

VB
Copiar
Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' The following line of code sets aString to "437.324".
aString = CStr(aDouble)

En el ejemplo siguiente se utiliza la función CStr para convertir valores Date en valores String.

VB
Copiar
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 siempre representa un valor Date en el formato corto estándar de la configuración


regional actual, por ejemplo, "15/6/2003 4:35:47 p.m.".Sin embargo, CStr suprime los valores
neutrales 1/1/0001 para la fecha y 00:00:00 para la hora.

Para obtener información detallada sobre los valores devueltos por CStr, vea Valores
devueltos para la función CStr (Visual Basic).

Ejemplo de CUInt

En el siguiente ejemplo se utiliza la función CUInt para convertir un valor numérico en


UInteger.

VB
Copiar
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)

Ejemplo de CULng

En el siguiente ejemplo se utiliza la función CULng para convertir un valor numérico en


ULong.

VB
Copiar
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)
Ejemplo de CUShort

En el siguiente ejemplo se utiliza la función CUShort para convertir un valor numérico en


UShort.

VB
Copiar
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)

Valores devueltos para la función CStr


(Visual Basic)
Visual Studio 2013
Otras versiones

Este tema aún no ha recibido ninguna valoración - Valorar este tema

En la tabla siguiente se describen los valores devueltos por la función CStr en varios tipos de
expression.

Si el tipo de expression es CStr devuelve


Boolean (Tipo de datos,
Cadena que contiene "True" o "False".
Visual Basic)
Date (Tipo de datos, Visual Cadena que contiene un valor Date (fecha y hora) en el
Basic) formato de fecha corta del sistema.
Tipos de datos numéricos
Cadena que representa el número.
(Visual Basic)
CStr y Date

El tipo Date siempre contiene información de fecha y hora.Para la conversión de tipos, Visual
Basic considera 1/1/0001 (1 de enero del año 1) un valor neutral de fecha y 00:00:00
(medianoche) un valor neutral de hora.CStr no incluye los valores neutros en la cadena
resultante.Por ejemplo, si se convierte #January 1, 0001 9:30:00# en una cadena, el resultado
sería "9:30:00 a.m.", ya que la información de fecha se omite.No obstante, la información de
fecha sigue estando presente en el valor Date original y se puede recuperar mediante funciones
como DatePart.

Nota
La función CStr realiza su conversión basándose en la configuración de la referencia cultural
actual de la aplicación.Para obtener la representación en forma de cadena de un número en una
referencia cultural determinada, utilice el método ToString(IFormatProvider) del número.Por
ejemplo, utilice Double.ToString al convertir un valor de tipo Double en String.

Boolean (Tipo de datos, Visual Basic)


Visual Studio 2013
Otras versiones

Este tema aún no ha recibido ninguna valoración - Valorar este tema

Contiene valores que pueden ser sólo True o False.Las palabras clave True y False
corresponden a los dos estados de las variables Boolean.

Comentarios

Utilice Boolean (Tipo de datos, Visual Basic) para contener valores de dos estados como
verdadero/falso, sí/no o activado/desactivado.

El valor predeterminado de Boolean es False.

Los valores Boolean no se almacenan como números y los valores almacenados no se


consideran equivalentes a números.No debe escribir código que se base en los valores
numéricos equivalentes de True y False.Siempre que sea posible, debe restringir el uso de
variables Boolean a los valores lógicos para los que se han diseñado.

Conversiones de tipo

Cuando Visual Basic convierte los valores de tipos de datos numéricos en Boolean, 0 pasa a
ser False y todos los otros valores, True.Cuando Visual Basic convierte los valores Boolean en
tipos numéricos, False pasa a ser 0 y True, -1.

Al convertir entre valores Boolean y tipos de datos numéricos, recuerde que los métodos de
conversión de .NET Framework no siempre producen los mismos resultados que las palabras
clave de conversión de Visual Basic.Esto se debe a que la conversión de Visual Basic
conserva un comportamiento compatible con versiones anteriores.Para obtener más
información, vea la sección sobre cómo el tipo Boolean no se convierte al tipo numérico
correctamente en Solucionar problemas de tipos de datos (Visual Basic).
Sugerencias de programación

 Números negativos.Boolean no es un tipo


numérico y no puede representar un valor
negativo.En cualquier caso, no debería
utilizar Boolean para contener valores
numéricos.
 Caracteres de tipo.Boolean no tiene ningún
carácter de tipo literal o de tipo
identificador.
 Tipo en Framework. El tipo
correspondiente en .NET Framework es la
estructura System.Boolean.

Ejemplo

En el ejemplo siguiente, runningVB es una variable Boolean que almacena un único parámetro
de tipo sí/no.

Copiar
Dim runningVB As Boolean
' Check to see if program is running on Visual Basic engine.
If scriptEngine = "VB" Then
runningVB = True
End If

Date (Tipo de datos, Visual Basic)


Visual Studio 2013
Otras versiones

Este tema aún no ha recibido ninguna valoración - Valorar este tema

Contiene valores IEEE de 64 bits (8 bytes) que representan fechas comprendidas entre el 1 de
enero del año 0001 y el 31 de diciembre de 9999, y horas comprendidas entre las 0:00:00
(medianoche) y las 11:59:59.Cada incremento representa 100 nanosegundos de tiempo
transcurrido desde el comienzo del 1 de enero del año 1 del calendario gregoriano.El valor
máximo representa 100 nanosegundos antes del comienzo del 1 de enero del año 10000.

Comentarios

Utilice el tipo de datos Date para albergar valores de fecha, valores de tiempo o valores de
fecha y hora.
El valor predeterminado de Date es 0:00:00 (medianoche) del 1 de enero de 0001.

Puede obtener la fecha y hora actual de la clase DateAndTime.

Requisitos de formato

Debe incluir un literal Date dentro de los signos de número (# #).Debe especificar el valor de
fecha en el formato M/d/yyyy, por ejemplo #5/31/1993#.Este requisito es independiente de la
configuración regional y de la configuración de formato de fecha y hora del equipo.

El motivo de esta restricción es que el significado del código nunca debe cambiar en función
de la configuración regional en que se ejecuta la aplicación.Suponga que codifica un literal
Date de #3/4/1998# y piensa que signifique el 4 de marzo de 1998.En una configuración
regional que use el formato mm/dd/aaaa, 3/4/1998 se compila como desee.Pero suponga que
implementa la aplicación en varios países.En una configuración regional que use el formato
dd/mm/aaaa, el literal incluido en el código se compilará como April 3, 1998.En una
configuración local que utilice el formato aaaa/mm/dd, el literal no sería válido (April 1998,
0003) y generaría un error de compilación.

Soluciones

Para convertir un literal de tipo Date al formato de la configuración regional o a un formato


personalizado, proporcione el literal a la función Format especificando un formato de fecha
predefinido o especificado por el usuario.En el siguiente ejemplo se muestra cómo.

Copiar
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))

Si lo desea, puede utilizar también uno de los constructores sobrecargados de la estructura


DateTime para ensamblar un valor de fecha y hora.En el ejemplo siguiente se crea un valor
para representar Mayo 31, 1993 a las 12:14 del mediodía.

Copiar
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)

Formato de hora

Puede especificar el valor de hora con un formato de 12 horas o de 24 horas, por ejemplo
#1:15:30 PM# o #13:15:30#.Sin embargo, si no especifica los minutos ni los segundos, debe
especificar a.m. o p.m.

Valores predeterminados de fecha y hora

Si no incluye una fecha en un literal de fecha y hora, Visual Basic establecerá la parte del
valor correspondiente a la fecha en el 1 de enero de 0001.Si no incluye una hora en un literal
de fecha y hora, Visual Basic establecerá la parte del valor correspondiente a la hora en el
comienzo del día, es decir, medianoche (0:00:00)

Conversiones de tipo

Si convierte un valor Date al tipo String, Visual Basic representa la fecha en función del
formato corto de fecha especificado por la configuración regional en tiempo de ejecución, y
representa la hora de acuerdo con el formato de hora (12 o 24 horas) especificado por la
configuración regional en tiempo de ejecución.

Sugerencias de programación

 Consideraciones de interoperabilidad. Si
está interactuando con componentes que no
se han escrito para .NET Framework, por
ejemplo objetos de automatización u
objetos COM, tenga presente que los tipos
de fecha y hora definidos en otros entornos
no son compatibles con el tipo Date de
Visual Basic.Al transferir un argumento de
fecha y hora a un componente de este tipo,
declárelo como Double en lugar de Date en
el nuevo código de Visual Basic, y utilice
los métodos de conversión
DateTime.FromOADate y
DateTime.ToOADate.
 Caracteres de tipo.Date no tiene caracteres
de tipo literal ni caracteres de tipo
identificador.Sin embargo, el compilador
trata los literales incluidos entre caracteres
de signo de número (# #) como Date.
 Tipo en Framework. El tipo
correspondiente en .NET Framework es la
estructura System.DateTime.

Ejemplo

Una variable o constante del tipo de datos Date contiene tanto la fecha como la hora.Esto se
ilustra en el siguiente ejemplo:

Copiar
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#
Tipos de datos numéricos (Visual Basic)
Visual Studio 2013
Otras versiones

Este tema aún no ha recibido ninguna valoración - Valorar este tema

Visual Basic proporciona diversos tipos de datos numéricos para controlar números en varias
representaciones.Los tipos integrales representan sólo números enteros (positivos, negativos y
cero) y los tipos no integrales representan números con partes enteras y fraccionarias.

Para ver una tabla en la que se muestra una comparación en paralelo de los tipos de datos de
Visual Basic, vea Resumen de tipos de datos (Visual Basic).

Tipos numéricos integrales

Los tipos de datos integrales son aquellos que sólo representan números sin partes
fraccionarias.

Los tipos de datos integrales con signo son SByte (Tipo de datos, Visual Basic) (de 8 bits),
Short (Tipo de datos, Visual Basic) (de 16 bits), Integer (Tipo de datos, Visual Basic) (de 32
bits) y Long (Tipo de datos, Visual Basic) (de 64 bits).Si una variable almacena siempre
enteros en lugar de números fraccionarios, declárela como uno de estos tipos.

Los tipos enteros sin signo son Byte (Tipo de datos, Visual Basic) (de 8 bits), UShort (Tipo de
datos, Visual Basic) (de 16 bits), UInteger (Tipo de datos) (de 32 bits) y ULong (Tipo de
datos, Visual Basic) (de 64 bits).Si una variable contiene datos binarios o datos de naturaleza
desconocida, declárela como uno de estos tipos.

Rendimiento

Los operadores aritméticos son más rápidos con los tipos enteros que con cualquier otro tipo
de datos.Son más rápidos con los tipos Integer y UInteger de Visual Basic.

Enteros grandes

Si es preciso que contenga un entero mayor que el que es capaz de contener el tipo de datos
Integer, puede usar en su lugar el tipo de datos Long.Las variables Long pueden contener
números comprendidos entre -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807.Las
operaciones con Long son ligeramente más lentas que con Integer.

Si necesita valores aun más grandes, puede utilizar Decimal (Tipo de datos, Visual
Basic).Puede contener números de -79.228.162.514.264.337.593.543.950,335 a
79.228.162.514.264.337.593.543.950,335 en una variable Decimal si no utiliza ninguna
posición decimal.Sin embargo, las operaciones con números Decimal son considerablemente
más lentas que con cualquier otro tipo de dato numérico.

Enteros pequeños

Si no necesita el intervalo completo del tipo de datos Integer, puede utilizar el tipo de datos
Short, que puede contener enteros comprendidos entre -32.768 y 32.767.En el caso del
intervalo de enteros más pequeño, el tipo de datos SByte contiene los enteros comprendidos
entre -128 y 127.Si tiene un número muy grande de variables que contienen enteros pequeños,
Common Language Runtime puede almacenar a veces las variables Short y SByte de un modo
más eficaz y ahorrar espacio de memoria.Sin embargo, las operaciones con Short y SByte son
algo más lentas que con Integer.

Enteros sin signo

Si sabe que la variable no va a necesitar contener nunca un número negativo, puede utilizar los
tipos sin signoByte, UShort, UInteger y ULong.Cada uno de estos tipos de datos puede
contener un entero positivo dos veces más grande que su tipo con signo correspondiente
(SByte, Short, Integer y Long).En lo que se refiere a rendimiento, un tipo sin signo es
exactamente tan eficaz como su tipo con signo correspondiente.En particular, UInteger
comparte con Integer la distinción de ser el más eficaz de todos los tipos de datos numérico
básicos.

Tipos numéricos no integrales

Los tipos de datos no integrales son aquellos que representan números que contienen tanto
partes enteras como decimales.

Los tipos de datos numéricos no integrales son Decimal (punto fijo de 128 bits), Single (Tipo
de datos, Visual Basic) (punto flotante de 32 bits) y Double (Tipo de datos, Visual Basic)
(punto flotante de 64 bits).Todos ellos son tipos con signo.Si una variable puede contener una
fracción, declárela como variable de uno de estos tipos.

Decimal no es un tipo de datos de punto flotante.Los números de tipo Decimal tienen un valor
entero binario y un factor de escala de entero que especifica qué parte del valor es una fracción
decimal.

Puede utilizar las variables de Decimal por los valores de moneda.la ventaja es la precisión de
los valores.El tipo de datos Double es más rápido y requiere menos memoria, pero está sujeto
a errores de redondeo.El tipo de datos de Decimal proporciona una exactitud total en 28
posiciones decimales.

Los números con punto flotante (Single y Double) tienen intervalos mayores que los números
Decimal pero pueden estar sujetos a errores de redondeo.Los tipos de punto flotante admiten
menos dígitos significativos que Decimal pero pueden representar valores de mayor magnitud.
Los valores de números no integrales se pueden expresar como mmmEeee, donde mmm es la
mantisa (dígitos significativos) y eee es el exponente (una potencia de 10).Los valores
positivos superiores de los tipos no integrales son 7.9228162514264337593543950335E+28
para Decimal, 3.4028235E+38 para Single y 1.79769313486231570E+308 para Double.

Rendimiento

Double es el más eficaz de los tipos de datos fraccionarios, porque los procesadores de las
plataformas actuales realizan las operaciones de punto flotante en precisión doble.Sin
embargo, las operaciones con Double no son tan rápidas como con los tipos enteros como
Integer.

Magnitudes pequeñas

Para los números con la magnitud más pequeña posible (cercana a 0), las variables Double
pueden contener números tan pequeños como -4.94065645841246544E-324 para valores
negativos y 4.94065645841246544E-324 para valores positivos.

Números fraccionarios pequeños

Si no necesita el intervalo completo del tipo de datos Double, puede utilizar el tipo de datos
Single, que puede contener números de punto flotante comprendidos entre -3.4028235E+38 y
3.4028235E+38.Las magnitudes más pequeñas para las variables Single son -1.401298E-45
para valores negativos y 1.401298E-45 para valores positivos.Si tiene un número muy grande
de variables que contienen números en punto flotante pequeños, Common Language Runtime
puede almacenar a veces las variables Single de un modo más eficaz y ahorrar espacio de
memoria.

CType (Función) (Visual Basic)


Visual Studio 2013
Otras versiones

Este tema aún no ha recibido ninguna valoración - Valorar este tema

Devuelve el resultado de convertir explícitamente una expresión en un tipo de datos, objeto,


estructura, clase o interfaz especificados.

Copiar
CType(expression, typename)
Elementos

expression
Cualquier expresión válida.Si el valor de
expression está fuera del intervalo
permitido por typename, Visual Basic
produce una excepción.

typename

Cualquier expresión válida dentro de una


cláusula As de una instrucción Dim, es
decir, el nombre de cualquier tipo de datos,
objeto, estructura, clase o interfaz.

Comentarios

Sugerencia
También puede utilizar las siguientes funciones para realizar una conversión de tipos:

 La conversión de tipos funciona como CByte, CDbl y CInt que realizan una conversión
a un tipo de datos específico.Para obtener más información, vea Funciones de
conversión de tipos (Visual Basic).
 DirectCast (Operador) (Visual Basic) o TryCast (Operador) (Visual Basic).Estos
operadores requieren que un tipo se herede o implemente en otro tipo.Pueden
proporcionar un mejor rendimiento que CType al convertir al tipo de datos de Object.

CType se compila en línea, es decir, el código de conversión forma parte del código que
evalúa la expresión.En algunos casos, el código se ejecuta con mayor rapidez porque no se
llama a los procedimientos para realizar la conversión.

Si no se ha definido ninguna conversión de expression a typename, (por ejemplo, de Integer a


Date), Visual Basic muestra un mensaje de error de compilación.

Si en una conversión se produce un error en tiempo de ejecución, se produce la excepción


correspondiente.Si se produce un error en una conversión de restricción, OverflowException
es el resultado más común.Si la conversión es indefinida, se produce una excepción
InvalidCastException.Por ejemplo, esto puede pasar si expression es de tipo Object y su tipo
en tiempo de ejecución no tiene ninguna conversión a typename.

Si el tipo de datos de expression o typename es una clase o estructura que ha definido, puede
definir CType en dicha clase o estructura como un operador de conversión.Esto hace que
CType actúe como un operador sobrecargado.De este modo, puede controlar el
comportamiento de las conversiones que tienen como destino o como origen la clase o
estructura, incluidas las excepciones que se pueden producir.

Sobrecarga
El operador CType también se puede sobrecargar en una clase o la estructura definida fuera
del código.Si el código realiza conversiones que tienen como destino o como origen una clase
o estructura de este tipo, asegúrese de conocer el comportamiento de su operador CType.Para
obtener más información, vea Procedimientos de operador (Visual Basic).

Convertir objetos dinámicos

Las conversiones de tipos de objetos dinámicos se realizan mediante conversiones dinámicas


definidas por el usuario que utilizan los métodos TryConvert o BindConvert .Si está
trabajando con objetos dinámicos, utilice el método de CTypeDynamic para convertir el
objeto dinámico.

Ejemplo

En el ejemplo siguiente se utiliza la función CType para convertir una expresión al tipo de
datos Single.

VB
Copiar
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

Para obtener otros ejemplos, vea Conversiones implícita y explícita (Visual Basic).

También podría gustarte