Exceli VBA topeltandmete tüüp
VBA Double on omamoodi andmetüüp, mille omistame muutujate deklareerimiseks. See on andmetüübi muutuja „Single” täiustatud või pikem versioon ning seda kasutatakse tavaliselt pikemate kümnendkohtade salvestamiseks.
Andmetüüp VBA Integer teisendab kümnendväärtused alati lähima täisarvuni. Üks andmetüüp võib näidata kuni kaks kohta pärast koma. Teisest küljest saab „topelt” andmetüüp negatiivsete väärtuste jaoks salvestada väärtusi vahemikus -1,79769313486231E308 kuni -4,94065645841247E324 ja positiivsete arvude korral väärtusi 4,94065645841247E-324 kuni 1,79769313486232E308 .
Veelgi olulisem on see, et see kulutab 8 baiti mälu.

Näited VBA Double Data Type kasutamise kohta
Näide 1
Enne kui näeme andmetüübi „Double” näidet, vaatame VBA andmetüüpide „Integer” ja „Single” näidiskoode. Vaadake allpool olevat VBA-koodi.
Kood:
Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub

Olen deklareerinud muutuja “k” täisarvuna ja selle muutuja jaoks olen määranud väärtuseks 2,569999947164.
Käivitame selle koodi käsitsi või kasutades Exceli otseteeklahvi F5, et näha VBA teatekastis lõplikku väärtust.

Tulemust näidatakse 3-na, mitte tarnitud numbri 2.569999947164 asemel. Põhjus, kuna VBA on teisendanud numbri lähima täisarvu väärtuseks, st 3.
Kui kümnendarv on suurem kui 0,5, teisendatakse see järgmiseks täisarvuks ja kui kümnendarv on väiksem kui 0,51, teisendatakse see täisarvuks.
Nüüd muudan andmetüübi täisarvust üksikuks.
Kood:
Sub Integer_Ex () Dim k üksikuna k = 2,569999947164 MsgBox k End Sub

Käivitage kood otseteeklahvi F5 kaudu ja vaadake, mis numbri me seekord saame.

Seekord saime tulemuseks 2,57, seega seekord kaks komakohta. Meie määratud algne väärtus oli 2,569999947164, seega antud juhul on kolmandaks paigutatud kümnendväärtus 9, nii et kuna see on rohkem kui 5, on see teisendanud teise koha kümnendväärtuse 7-ks.
Nüüd muutke andmetüüp ühest ühekordseks.
Kood:
Sub Integer_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub

Nüüd käivitage kood käsitsi ja vaadake, mitu numbrit saame sõnumikasti tulemust.

See aeg sai kõik kümnendarvud. Topeltandmete tüübi all saame esitada kuni 14 numbrit kümnendkohti.
Oletame, et sisestate mis tahes väärtuse, mis on suurem kui 14 kümnendkoha täpsustamist, teisendatakse lähimaks väärtuseks. Näiteks vaadake allolevat pilti.

Olen sisestanud 14 kümnendkoha asemel kümnendkoha. Kui vajutan sisestusklahvi, on see tagasi ainult 14 kohaline.

59 (viimase kahe numbri) asemel saime 6, st kuna viimane number on 9, siis on suurem kui 5 eelmine arv 5 teisendatakse järgmiseks täisarvuks, st 6
Näide 2
Nüüd näitan töölehel lahtriviidetega töötamist. Allpool on numbrid, mille olen töölehele sisestanud.

Alustame samade väärtuste hõivamist järgmisele, kasutades INTEGER andmetüüpi, SINGLE andmetüüpi ja DOUBLE tüüpi.
Allpool on kood veergude A kuni B väärtuste säilitamiseks andmetüübi INTEGER abil.
Kood:
Sub Double_Ex () Dim k täisarvuna Dim CellValue täisarvuna k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtus Lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub

Käivitame koodi otseteeklahvi F5 abil, et näha, millised väärtused me veerus B saame.

Kui oleme andmetüübina kasutanud täisarvu, saime kõik täisarvud, st kümnendkohtadeta.
Nüüd muudan lihtsalt muutuja VBA andmetüübi täisarvust Single väärtuseks.
Kood:
Sub Double_Ex () Dim k täisarvu Dim CellValue üksikuna k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtus Lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub

See kood annab allpool toodud tulemuse.

Seekord saime ainult kaks kohta pärast koma.
Nüüd muudab andmetüübi ühelt topelt.
Kood:
Sub Double_Ex () Dim k täisarvuna Dim CellValue kahekordse väärtusega k = 1 kuni 6 CellValue = lahtrid (k, 1). Väärtuse lahtrid (k, 2). Väärtus = CellValue Järgmine k End Sub

See annab järgmise tulemuse.

Täpsed väärtused on saadud veerust A
Asjad, mida meeles pidada
- Double on üksikute andmetüüpide täiustatud andmetüüp.
- Sellesse mahub kuni 14 kohta pärast koma.
- See tarbib 8 baiti süsteemimälu.