VBA Dubbel - Hoe het dubbele gegevenstype in VBA te declareren?

Excel VBA dubbel gegevenstype

VBA Double is een soort gegevenstype dat we toewijzen om variabelen te declareren. Dit is een verbeterde of langere versie van de "Single" datatype-variabele en wordt meestal gebruikt om langere decimalen op te slaan.

VBA Integer-gegevenstype converteert altijd decimale waarden naar de dichtstbijzijnde gehele waarde. Het enkele gegevenstype kan maximaal twee cijfers achter de komma weergeven. Aan de andere kant kan het gegevenstype "Dubbel" waarden opslaan van -1.79769313486231E308 tot -4.94065645841247E324 voor negatieve waarden en voor positieve getallen kan het waarden opslaan van 4.94065645841247E-324 tot 1.79769313486232E308 .

Wat nog belangrijker is, het verbruikt 8 bytes aan geheugen.

Voorbeelden om VBA Double Data Type te gebruiken

Voorbeeld 1

Voordat we het voorbeeld van het gegevenstype "Dubbel" zien, kijken we naar de voorbeeldcodes van het gegevenstype "Geheel getal" en "Enkelvoudig" in VBA. Kijk naar de onderstaande VBA-code.

Code:

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

Ik heb de variabele "k" gedeclareerd als geheel getal, en voor deze variabele heb ik de waarde toegewezen als 2,569999947164.

Laten we deze code handmatig uitvoeren of Excel-sneltoets F5 gebruiken om de uiteindelijke waarde in het berichtvenster in VBA te zien.

Het resultaat wordt weergegeven als 3 in plaats van het opgegeven nummer 2,569999947164. De reden omdat VBA het getal heeft geconverteerd naar de dichtstbijzijnde gehele waarde, dwz 3.

Als de decimale waarde groter is dan 0,5, wordt deze geconverteerd naar de volgende gehele waarde, en als de decimale waarde kleiner is dan 0,51, wordt deze geconverteerd naar een lagere gehele waarde.

Nu zal ik het gegevenstype wijzigen van Integer in Single.

Code:

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

Voer de code uit via sneltoets F5 en kijk welk nummer we deze keer krijgen.

Deze keer kregen we het resultaat als 2,57, dus deze keer kregen we twee decimalen. De oorspronkelijke waarde die we hebben toegewezen was 2,569999947164, dus in dit geval is de derde decimale waarde 9, dus aangezien dit meer is dan 5, heeft het de decimale waarde 6 op de tweede plaats omgezet in 7.

Verander nu het gegevenstype van enkel naar dubbel.

Code:

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

Voer nu de code handmatig uit en kijk hoeveel cijfers we krijgen in het berichtvenster.

Deze keer kreeg ik alle decimale waarden. We kunnen maximaal 14 cijfers achter de komma opgeven onder het gegevenstype Dubbel.

Stel dat u een waarde invoert die groter is dan 14 decimalen, wordt geconverteerd naar de dichtstbijzijnde waarde. Kijk bijvoorbeeld naar de onderstaande afbeelding.

Ik heb 15 cijfers achter de komma getypt in plaats van 14. Als ik op de enter-toets druk, komt het terug op 14 cijfers.

In plaats van 59 (laatste twee cijfers), hebben we 6, dat wil zeggen, aangezien het laatste cijfer 9 is, wat groter is dan 5, wordt het vorige nummer 5 geconverteerd naar het volgende gehele getal, dat wil zeggen 6

Voorbeeld 2

Nu zal ik laten zien hoe u met celverwijzing in een werkblad kunt werken. Hieronder staan ​​de cijfers die ik in het werkblad heb ingevoerd.

Laten we beginnen met het vastleggen van dezelfde waarden voor de volgende door het gegevenstype INTEGER , ENKEL gegevenstype en DUBBEL type te gebruiken.

Hieronder staat de code om waarden van kolom A tot en met B te behouden door het gegevenstype INTEGER te gebruiken.

Code:

Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub

Laten we de code door sneltoets F5 laten lopen om te zien welke waarden we in kolom B krijgen.

Als we Integer als datatype hebben gebruikt, krijgen we alle hele getallen, dwz zonder decimalen.

Nu zal ik gewoon het VBA-gegevenstype van een variabele wijzigen van integer naar Single.

Code:

Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub

Deze code geeft het onderstaande resultaat.

Deze keer kregen we slechts twee decimalen.

Verandert nu het datatype van enkel naar dubbel.

Code:

Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub

Dit levert het onderstaande resultaat op.

We hebben exacte waarden uit kolom A.

Dingen om te onthouden

  • Dubbel is een verbeterd gegevenstype van het gegevenstype Enkel.
  • Het kan maximaal 14 decimalen bevatten.
  • Het verbruikt 8 bytes systeemgeheugen.

Interessante artikelen...