Tipos de datos numéricos (Visual Basic)

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

Para ver una tabla que muestra una comparación en paralelo de los tipos de datos de Visual Basic, consulte Tipos de datos.

Tipos numéricos enteros

Los tipos de datos enteros son aquellos que representan solo números sin partes fraccionarias.

Los tipos de datos enteros con signo son tipo de datos SByte (8 bits), tipo de datos corto (16 bits), tipo de datos entero (32 bits) y tipo de datos largo (64 bits). Si una variable siempre almacena enteros en lugar de números fraccionarios, declárela como uno de estos tipos.

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

Rendimiento

Las operaciones aritméticas son más rápidas con tipos enteros que con otros tipos de datos. Son más rápidas con los tipos Integer y UInteger en Visual Basic.

Enteros grandes

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

Si necesita valores aún mayores, puede usar el tipo de datos decimal. 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 usa posiciones decimales. Sin embargo, las operaciones con números Decimal son considerablemente más lentas que con cualquier otro tipo de datos numérico.

Enteros pequeños

Si no necesita el intervalo completo del tipo de datos Integer, puede usar el tipo de datos Short, que puede contener enteros de -32 768 a 32 767. Para el intervalo entero más pequeño, el tipo de datos SByte contiene enteros de -128 a 127. Si tiene un gran número de variables que contienen enteros pequeños, Common Language Runtime a veces puede almacenar las variables Short y SByte de forma más eficaz y ahorrar en el consumo 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 nunca necesita contener un número negativo, puede usar los tipos sin signoByte, UShort, UInteger y ULong. Cada uno de estos tipos de datos puede contener un entero positivo dos veces mayor que su tipo con signo correspondiente (SByte, Short, Integer y Long). En términos de rendimiento, cada tipo sin signo es exactamente tan eficaz como su tipo con signo correspondiente. En concreto, UInteger comparte con Integer la distinción de ser el más eficaz de todos los tipos de datos numéricos elementales.

Tipos numéricos no enteros

Los tipos de datos no enteros son aquellos que representan números con partes enteras y fraccionarias.

Los tipos de datos numéricos no enteros son Decimal (punto fijo de 128 bits), tipo de datos único (punto flotante de 32 bits) y tipo de datos doble (punto flotante de 64 bits). Todos son tipos con signo. Si una variable puede contener una fracción, declárela como uno de estos tipos.

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

Puede usar variables Decimal para valores de dinero. 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 Decimal conserva la precisión completa en 28 posiciones decimales.

Los números de 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úmero no enteros se pueden expresar como mmmEeee, donde mmm es la mantisa (los dígitos significativos) y eee es el exponente (una potencia de 10). Los valores positivos más altos de los tipos no enteros son 7,922816251426437593543950335E+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, ya que los procesadores de las plataformas actuales realizan operaciones de punto flotante en doble precisión. Sin embargo, las operaciones con Double no son tan rápidas como con los tipos enteros, por ejemplo Integer.

Magnitudes pequeñas

Para números con la magnitud más pequeña posible (más 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 usar el tipo de datos Single, que puede contener números de punto flotante de -3,4028235E+38 a 3,4028235E+38. Las magnitudes más pequeñas de las variables Single son -1,401298E-45 para valores negativos y 1,401298E-45 para valores positivos. Si tiene un gran número de variables que contienen números de punto flotante pequeños, Common Language Runtime a veces puede almacenar las variables Single de forma más eficaz y ahorrar en el consumo de memoria.

Consulte también