VBA Double - Como declarar o tipo de dados duplo no VBA?

Tipo de dados duplo VBA do Excel

VBA Double é um tipo de tipo de dados que atribuímos para declarar variáveis, que é uma versão melhorada ou mais longa da variável de tipo de dados “Única” e geralmente é usado para armazenar casas decimais mais longas.

O tipo de dados VBA Integer sempre converte os valores decimais no valor inteiro mais próximo. O único tipo de dados pode mostrar até dois dígitos de casas decimais. Por outro lado, o tipo de dados “Duplo” pode armazenar valores de -1,79769313486231E308 a -4,94065645841247E324 para valores negativos e para números positivos pode armazenar valores de 4,94065645841247E-324 a 1,79769313486232E308 .

Mais importante ainda, ele consome 8 bytes de memória.

Exemplos para usar o tipo de dados duplo VBA

Exemplo 1

Antes de vermos o exemplo do tipo de dados “Duplo”, vamos examinar os códigos de exemplo dos tipos de dados “Inteiro” e “Único” no VBA. Observe o código VBA abaixo.

Código:

Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub

Eu declarei a variável “k” como Inteiro e, para essa variável, atribuí o valor como 2,569999947164.

Vamos executar esse código manualmente ou usando a tecla de atalho do Excel F5, para ver o valor final na caixa de mensagem no VBA.

O resultado é mostrado como 3 em vez do número fornecido de 2,569999947164. O motivo é que o VBA converteu o número para o valor inteiro mais próximo, ou seja, 3.

Quando o valor decimal for maior que 0,5, ele será convertido para o próximo valor inteiro, e quando o valor decimal for menor que 0,51, ele será convertido para o valor inteiro abaixo.

Agora, mudarei o tipo de dados de inteiro para único.

Código:

Sub Integer_Ex () Dim k As Single k = 2,569999947164 MsgBox k End Sub

Execute o código por meio da tecla de atalho F5 e veja qual número obtemos desta vez.

Desta vez, obtivemos o resultado de 2,57, portanto, desta vez, obtivemos duas casas decimais. O valor original que atribuímos foi 2,569999947164, portanto, neste caso, em terceiro lugar, o valor decimal colocado é 9, portanto, como é maior que 5, ele converteu o valor decimal da segunda casa 6 em 7.

Agora mude o tipo de dados de Single para Double.

Código:

Sub Inteiro_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub

Agora execute o código manualmente e veja quantos dígitos obtemos no resultado da caixa de mensagem.

Desta vez, obteve todos os valores decimais. Podemos fornecer até 14 dígitos de casas decimais no tipo de dados Double.

Suponha que você forneça qualquer valor superior a 14 casas decimais que serão convertidos para o valor mais próximo. Por exemplo, olhe para a imagem abaixo.

Eu digitei 15 casas decimais em vez de 14. Se eu pressionar a tecla Enter, ele voltará para apenas 14 dígitos.

Em vez de 59 (últimos dois dígitos), obtivemos 6 ou seja, como o último dígito é 9, que é maior que 5, o número anterior 5 é convertido para o próximo valor inteiro, ou seja, 6

Exemplo # 2

Agora vou mostrar como trabalhar com referência de célula em uma planilha. Abaixo estão os números que inseri na planilha.

Vamos iniciar a captura dos mesmos valores para o próximo usando o tipo de dados INTEGER , tipo de dados SINGLE e tipo DOUBLE .

Abaixo está o código para reter valores da coluna A a B usando o tipo de dados INTEGER.

Código:

Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 a 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Vamos executar o código por meio da tecla de atalho F5 para ver quais valores obtemos na coluna B.

Quando usamos Integer como tipo de dados, obtemos todos os números inteiros, ou seja, sem decimais.

Agora vou apenas alterar o tipo de dados VBA de uma variável de inteiro para Único.

Código:

Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 a 6 CellValue = Células (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Este código dará o resultado abaixo.

Desta vez, obtivemos apenas duas casas decimais.

Agora muda o tipo de dados de simples para duplo.

Código:

Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 a 6 CellValue = Células (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Isso retornará o resultado abaixo.

Temos os valores exatos da coluna A.

Coisas para lembrar

  • Double é um tipo de dados aprimorado do tipo de dados Único.
  • Ele pode conter até 14 casas decimais.
  • Ele consome 8 bytes de memória do sistema.

Artigos interessantes...