Tipo de dados decimais (Visual Basic)

Suspensões assinaram valores (16 byte) de 128 bit que representa os números de inteiro de 96 bit (12 byte) sinal dimensionados por uma potência variável de 10.O fator de escala especifica o número de dígitos à direita da vírgula decimal; ele varia de 0 a 28.Com uma escala de 0 (sem casas Decimal), o maior valor possível é +/-79.228.162.514.264.337.593.543.950.335 (+/-7 .9228162514264337593543950335E + 28).Com 28 casas decimais, o maior valor é +/-7.9228162514264337593543950335, e o menor valor diferente de zero é +/-0.0000000000000000000000000001 (+/-1e-28).

Comentários

O tipo de dados Decimal fornece o maior número de dígitos significativos para um número.Ele oferece suporte para até 29 dígitos significativos e pode representar valores além de 7.9228 x 10^28.Ele é particularmente adequado para cálculos, como financeiros, que exigem um grande número de dígitos mas não podem tolerar erros de arredondamento.

O valor padrão para Decimal é 0.

Dicas de Programação

  • Precisão. Decimal não é um tipo de dados de ponto flutuante.A estrutura Decimal mantém um valor inteiro binário, junto com um bit de sinal e um número inteiro de fator de escala que especifica qual parte do valor é uma fração decimal.Devido a isso, números Decimal têm uma representação mais precisa na memória que tipos de ponto flutuante (Single e Double).

  • Desempenho. O tipo de dados Decimal é o mais lento de todos os tipos numéricos.Você deve avaliar a importância da precisão contra o desempenho antes de escolher um tipo de dados.

  • **Ampliação.**O tipo de dadosDecimal amplia-se para Single ou Double.Isto significa que você pode converter um Decimal para qualquer um desses tipos sem a ocorrência de um erro System.OverflowException.

  • **Zeros à direita.**O Visual Basic não armazena zeros à direita em um literal Decimal.No entanto, uma variável Decimal preserva os zeros à direita adquiridos computacionalmente.O exemplo a seguir ilustra isto:

    Dim d1, d2, d3, d4 As Decimal
    d1 = 2.375D
    d2 = 1.625D
    d3 = d1 + d2
    d4 = 4.000D
    MsgBox("d1 = " & CStr(d1) & ", d2 = " & CStr(d2) _
        & ", d3 = " & CStr(d3) & ", d4 = " & CStr(d4))
    

    A saída de MsgBox no exemplo anterior é da seguinte maneira:

    d1 = 2.375, d2 = 1.625, d3 = 4.000, d4 = 4

  • Caracteres de Tipo. Ao se acrescentar o caractere de tipo literal D a um literal ele é forçado ao tipo de dados Decimal.Acrescentar o caractere de tipo identificador @ a qualquer identificador o força ao tipo Decimal.

  • Tipos de Framework. O tipo correspondente no .NET Framework é a estrutura System.Decimal.

Intervalo

Talvez seja necessário usar o caractere de tipo D para atribuir um valor grande para uma variável ou constante Decimal.O exemplo a seguir ilustra isto:

Dim bigDec1 As Decimal = 9223372036854775807   ' No overflow.
Dim bigDec2 As Decimal = 9223372036854775808   ' Overflow.
Dim bigDec3 As Decimal = 9223372036854775808D  ' No overflow.

O compilador interpreta um literal como Long a menos que ele seja seguido por um caractere de tipo literal.A declaração bigDec1 não produz um overflow porque seu valor está dentro do intervalo de Long.No entanto, o valor de bigDec2 é muito grande para Long, portanto, o compilador gerará um erro.O caractere de tipo literal D resolve o problema de bigDec3 forçando o compilador a interpretar o literal como Decimal.

Consulte também

Conceitos

Uso eficiente de tipos de dados

Referência

Resumo de tipo de dados (Visual Basic)

System.Decimal

Decimal.Decimal

Tipo de dados único (Visual Basic)

Tipo de dados duplo (Visual Basic)

Funções de conversão de tipo 

Resumo de conversão