Compartilhar via


Tipos de dados numéricos (Visual Basic)

O Visual Basic fornece vários tipos de dados numéricos para lidar com números em várias representações. Os tipos integrais representam apenas números inteiros (positivos, negativos e zero) e os tipos nonintegral 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

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

Os tipos de dados integrais assinados são Tipo de Dados SByte (8 bits), Tipo de Dados Curto (16 bits), Tipo de Dados Inteiro (32 bits) e Tipo de Dados Longos (64 bits). Se uma variável sempre armazenar inteiros em vez de números fracionários, declare-a como um desses tipos.

Os tipos integrais não assinados são Tipo de Dados Byte (8 bits), Tipo de Dados UShort (16 bits), Tipo de Dados UInteger (32 bits) e Tipo de Dados ULong (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 os tipos Integer e UInteger no Visual Basic.

Inteiros grandes

Se você precisar armazenar um inteiro maior que o Integer tipo de dados suporta, poderá 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 você precisar de valores ainda maiores, poderá usar o Tipo de Dados Decimal. Você pode armazenar 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 variável Decimal se não usar casas decimais. No entanto, as operações com Decimal números são consideravelmente mais lentas do que com qualquer outro tipo de dados numérico.

Inteiros Pequenos

Se você não precisar do intervalo completo do tipo de Integer dados, poderá usar o Short tipo de dados, que pode conter 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 tempo de execução comum pode, às vezes, armazenar suas Short e SByte variáveis mais eficientemente e economizar o consumo de memória. No entanto, as operações com Short e SByte são um pouco mais lentas do que com Integer.

Inteiros sem Sinal

Se você souber que sua variável nunca precisa conter um número negativo, poderá usar os tipos Byte, UShortUIntegere ULong. Cada um desses tipos de dados pode conter um inteiro positivo duas vezes maior que seu tipo assinado correspondente (SByte, , ShortIntegere 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

Tipos de dados nonintegral são aqueles que representam números com partes inteiras e fracionárias.

Os tipos de dados numéricos nonintegral são Decimal (ponto fixo de 128 bits), Tipo de Dados Único (ponto flutuante de 32 bits) e Tipo de Dados Duplo (ponto flutuante de 64 bits). Todos eles são 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 dimensionamento inteiro 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 precisão total até 28 casas decimais.

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

Os valores de número nonintegral podem ser expressos como mmmEeee, em que mmm é a mantissa (os dígitos significativos) e eee é o expoente (uma potência de 10). Os valores positivos mais altos dos tipos nonintegral são 7.922816251426437593543950335E+28 for Decimal, 3.4028235E+38 para Single, e 1,79769313486231570E+308 para Double.

Desempenho

Double é o mais eficiente dos tipos de dados fracionários, pois os processadores nas plataformas atuais executam operações de ponto flutuante em 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óximo 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.

Números fracionários pequenos

Se você não precisar do intervalo completo do tipo de Double dados, poderá usar o Single tipo de dados, que pode conter números de ponto flutuante de -3,4028235E+38 a 3,4028235E+38. As menores magnitudes para Single 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 números de ponto flutuante pequenos, o common language runtime às vezes pode armazenar suas Single variáveis com mais eficiência e economizar o consumo de memória.

Consulte também