Tipos de dados numéricos (Visual Basic)

Visual Basic fornece vários tipos de dados numéricos para manipular números em várias representações. Os tipos integrais representam apenas números inteiros (positivos, negativos e zero), e os tipos não integrais representam números com partes inteiras e fracionárias.

Para obter uma tabela mostrando uma comparação lado a lado dos tipos de dados do Visual Basic, consulte Tipos de dados.

Tipos numéricos integrais

Os tipos de dados integrais são aqueles que representam apenas números sem partes fracionárias.

Os tipos de dados integrais assinados são SByte Data Type (8 bits), Short Data Type (16 bits), Integer Data Type (32 bits) e Long Data Type (64 bits). Se uma variável sempre armazena números inteiros em vez de números fracionários, declare-a como um desses tipos.

Os tipos integrais não assinados são Byte Data Type (8 bits), UShort Data Type (16 bits), UInteger Data Type (32 bits) e ULong Data Type (64 bits). Se uma variável contiver dados binários ou dados de natureza desconhecida, declare-a como um desses tipos.

Desempenho

As operações aritméticas são mais rápidas com tipos integrais do que com outros tipos de dados. Eles são mais rápidos com o Integer e UInteger tipos no Visual Basic.

Inteiros grandes

Se você precisar manter um número inteiro maior do que o Integer tipo de dados pode conter, você pode usar o Long tipo de dados. Long As variáveis podem conter números de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. As operações com Long são ligeiramente mais lentas do que com Integer.

Se precisar de valores ainda maiores, você pode usar o Tipo de Dados Decimais. Você pode manter números de -79,228,162,514,264,337,593,543,950,335 a 79,228,162,514,264,337,593,543,950,335 em uma Decimal variável se você não usar nenhuma casa decimal. No entanto, as operações com Decimal números são consideravelmente mais lentas do que com qualquer outro tipo de dados numéricos.

Números inteiros pequenos

Se você não precisar do intervalo completo do tipo de dados, poderá usar o Short tipo de Integer dados, que pode conter números inteiros de -32.768 a 32.767. Para o menor intervalo de inteiros, o SByte tipo de dados contém inteiros de -128 a 127. Se você tiver um número muito grande de variáveis que contêm números inteiros pequenos, o Common Language Runtime às vezes pode armazenar suas Short variáveis e SByte de forma mais eficiente e economizar consumo de memória. No entanto, as operações com Short e SByte são um pouco mais lentas do que com Integer.

Inteiros não assinados

Se você sabe que sua variável nunca precisa conter um número negativo, você pode usar os tiposByte não assinados, UShort, UInteger, e ULong. Cada um desses tipos de dados pode conter um inteiro positivo duas vezes maior do que seu tipo assinado correspondente (SByte, Short, Integer, e Long). Em termos de desempenho, cada tipo não assinado é exatamente tão eficiente quanto seu tipo assinado correspondente. Em particular, UInteger compartilha com Integer a distinção de ser o mais eficiente de todos os tipos de dados numéricos elementares.

Tipos numéricos não integrais

Os tipos de dados não integrais são aqueles que representam números com partes inteiras e fracionárias.

Os tipos de dados numéricos não integrais são Decimal (ponto fixo de 128 bits), Tipo de dados único (ponto flutuante de 32 bits) e Tipo de dados duplos (ponto flutuante de 64 bits). São todos tipos assinados. Se uma variável puder conter uma fração, declare-a como um desses tipos.

Decimal não é um tipo de dados de ponto flutuante. Decimal Os números têm um valor inteiro binário e um fator de escala inteira que especifica qual parte do valor é uma fração decimal.

Você pode usar Decimal variáveis para valores monetários. A vantagem é a precisão dos valores. O Double tipo de dados é mais rápido e requer menos memória, mas está sujeito a erros de arredondamento. O Decimal tipo de dados mantém a precisão total até 28 casas decimais.

Os números de vírgula flutuante (Single e Double) têm intervalos maiores do que Decimal os números, mas podem estar sujeitos a erros de arredondamento. Os tipos de vírgula flutuante suportam menos dígitos significativos do que Decimal , mas podem representar valores de maior magnitude.

Os valores numéricos não integrais podem ser expressos como mmmEeee, em que mmm é a mantissa (os dígitos significativos) e eee é o expoente (uma potência de 10). Os maiores valores positivos dos tipos não integrais são 7,9228162514264337593543950335E+28 para , 3,4028235E+38 para DecimalSingle, e 1,79769313486231570E+308 para Double.

Desempenho

Double é o mais eficiente dos tipos de dados fracionários, porque os processadores nas plataformas atuais executam operações de ponto flutuante com precisão dupla. No entanto, as operações com Double não são tão rápidas quanto com os tipos integrais, como Integer.

Pequenas magnitudes

Para números com a menor magnitude possível (mais próxima de 0), Double as variáveis podem conter números tão pequenos quanto -4,94065645841246544E-324 para valores negativos e 4,94065645841246544E-324 para valores positivos.

Pequenos números fracionários

Se você não precisar do intervalo completo do tipo de dados, poderá usar o tipo de Double dados, que pode conter números de vírgula Single flutuante de -3,4028235E+38 a 3,4028235E+38. As menores magnitudes para Single as variáveis são -1,401298E-45 para valores negativos e 1,401298E-45 para valores positivos. Se você tiver um número muito grande de variáveis que contêm pequenos números de vírgula flutuante, o Common Language Runtime às vezes pode armazenar suas Single variáveis de forma mais eficiente e economizar consumo de memória.

Consulte também