VBA Double - Hvordan erklære dobbel datatype i VBA?

Innholdsfortegnelse

Excel VBA dobbel datatype

VBA Double er en slags datatype vi tilordner for å erklære variabler, som er en forbedret eller lengre versjon av "Single" datatypevariabelen og brukes vanligvis til å lagre lengre desimaler.

VBA Integer-datatype konverterer alltid desimalverdier til nærmeste heltallverdi. Den eneste datatypen kan vise opptil to sifre med desimaler. På den annen side kan "Dobbel" datatype lagre verdier fra -1,79769313486231E308 til -4,94065645841247E324 for negative verdier, og for positive tall kan den lagre verdier fra 4,94065645841247E-324 til 1,79769313486232E308 .

Enda viktigere, den bruker 8 byte minne.

Eksempler på bruk av VBA Double Data Type

Eksempel 1

Før vi ser eksemplet på "Dobbel" datatype, la oss se på eksemplene på "Heltall" og "Enkel" datatype i VBA. Se på VBA-koden nedenfor.

Kode:

Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub

Jeg har erklært variabelen “k” som heltall, og for denne variabelen har jeg tildelt verdien 2,569999947164.

La oss kjøre denne koden manuelt eller ved hjelp av excel hurtigtast F5, for å se den endelige verdien i meldingsboksen i VBA.

Resultatet vises som 3 i stedet for det medfølgende nummeret 2.569999947164. Årsaken er at VBA har konvertert tallet til nærmeste heltall, dvs. 3.

Når desimalverdien er mer enn 0,5, vil den konvertere til neste heltallverdi, og når desimalverdien er mindre enn 0,51, vil den konvertere til under heltallverdien.

Nå vil jeg endre datatypen fra Heltall til Enkelt.

Kode:

Sub Integer_Ex () Dim k Som Single k = 2.569999947164 MsgBox k End Sub

Kjør koden gjennom hurtigtast F5, og se hvilket nummer vi får denne gangen.

Denne gangen fikk vi resultatet som 2,57, så denne gangen fikk vi to desimaler. Den opprinnelige verdien vi har tildelt var 2.569999947164, så i dette tilfellet, tredje, er den plasserte desimalverdien 9, så siden dette er mer enn 5, har den konvertert desimalverdien 6 til 7 på andre plass.

Endre nå datatypen fra enkelt til dobbelt.

Kode:

Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub

Kjør nå koden manuelt og se hvor mange sifre vi får i meldingsboksen.

Denne gangen fikk alle desimalverdiene. Vi kan levere opptil 14 sifre med desimaler under dobbel datatype.

Anta at du oppgir en verdi som er større enn 14 desimaler, blir konvertert til nærmeste verdi. Se for eksempel på bildet nedenfor.

Jeg har skrevet 15 desimaler i stedet for 14. Hvis jeg trykker på enter-tasten, vil den bare være tilbake til 14 sifre.

I stedet for 59 (siste to sifre) fikk vi 6 ie, siden det siste sifferet er 9, som er større enn 5 forrige nummer 5 blir konvertert til neste heltall, dvs. 6

Eksempel 2

Nå skal jeg vise hvordan jeg kan arbeide med cellereferanse i et regneark. Nedenfor er tallene jeg har skrevet inn i regnearket.

La oss begynne å fange de samme verdiene til neste ved å bruke INTEGER datatype, ENKEL datatype og DOBBEL type.

Nedenfor er koden for å beholde verdiene fra kolonne A til B ved å bruke datatypen INTEGER.

Kode:

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

La oss kjøre koden gjennom hurtigtast F5 for å se hvilke verdier vi får i kolonne B.

Når vi har brukt Heltall som datatype, fikk vi alle hele tallene, dvs. uten desimaler.

Nå vil jeg bare endre VBA-datatypen til en variabel fra heltall til Enkelt.

Kode:

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

Denne koden vil gi resultatet nedenfor.

Denne gangen fikk vi bare to desimaler.

Endrer nå datatypen fra enkelt til dobbelt.

Kode:

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

Dette vil returnere resultatet nedenfor.

Vi har nøyaktige verdier fra kolonne A.

Ting å huske

  • Double er en forbedret datatype av enkelt datatype.
  • Den har plass til opptil 14 desimaler.
  • Den bruker 8 byte systemminne.

Interessante artikler...