VBA kaksinkertainen - Kuinka ilmoittaa kaksinkertainen tietotyyppi VBA: ssa?

Sisällysluettelo

Excel VBA Double Data Type

VBA Double on eräänlainen tietotyyppi, jonka annamme ilmoitettaville muuttujille. Se on parannettu tai pidempi versio ”Single” -tietomuuttujasta ja sitä käytetään yleensä pitempien desimaalien tallentamiseen.

VBA-kokonaislukutietotyyppi muuntaa desimaaliarvot aina lähimpään kokonaislukuun. Yhdessä tietotyypissä voi olla enintään kaksi desimaalin tarkkuutta. Toisaalta ”Double” -tietotyyppi voi tallentaa arvot välillä -1,79769313486231E308 - -4,94065645841247E324 negatiivisille arvoille ja positiivisille luvuille arvot välillä 4,94065645841247E-324 - 1,79769313486232E308 .

Vielä tärkeämpää on, että se kuluttaa 8 tavua muistia.

Esimerkkejä VBA Double Data Type -tyypin käytöstä

Esimerkki 1

Ennen kuin näemme esimerkin kaksoistietotyypistä, tarkastellaan VBA: n kokonaisluku- ja yksittäistietotyyppien esimerkkitunnuksia. Katso alla olevaa VBA-koodia.

Koodi:

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

Olen ilmoittanut muuttujan "k" kokonaisluvuksi, ja tälle muuttujalle olen määrittänyt arvon 2,569999947164.

Suoritetaan tämä koodi manuaalisesti tai käyttämällä Excel-pikanäppäintä F5, jotta näet lopullisen arvon VBA: n viestiruudussa.

Tulos näkyy 3: na toimitetun numeron 2.569999947164 sijaan. VBA: n syy on muuttanut numeron lähimpään kokonaislukuun eli 3.

Kun desimaaliarvo on yli 0,5, se muuntuu seuraavaksi kokonaislukuarvoksi ja kun desimaaliarvo on alle 0,51, se muuntuu alle kokonaisluvun.

Nyt vaihdan tietotyypin Kokonaisluvusta Yhdeksi.

Koodi:

Sub Integer_Ex () Dim k yksittäisenä k = 2.569999947164 MsgBox k End Sub

Suorita koodi pikanäppäimen F5 avulla ja katso, minkä numeron saamme tällä kertaa.

Tällä kertaa tulos oli 2,57, joten tällä kertaa kaksi desimaalia. Alkuperäinen määräämämme arvo oli 2,569999947164, joten tässä tapauksessa kolmanneksi sijoitettu desimaaliarvo on 9, joten koska tämä on yli 5, se on muuttanut toisen paikan desimaaliarvon 6 arvoksi 7.

Vaihda nyt tietotyyppi yhdestä kaksinkertaiseen.

Koodi:

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

Suorita koodi nyt manuaalisesti ja katso kuinka monta numeroa saamme viestiruudun tuloksessa.

Tällä kertaa saimme kaikki desimaaliarvot. Voimme toimittaa enintään 14 numeroa desimaaleja kaksoistietotyypillä.

Oletetaan, että kaikki yli 14 desimaalipisteen arvot muunnetaan lähimpään arvoon. Katso esimerkiksi alla olevaa kuvaa.

Olen kirjoittanut 15 desimaalia 14 sijasta. Jos painan Enter-näppäintä, se palaa vain 14 numeroon.

59: n (kahden viimeisen numeron) sijasta saimme 6 eli koska viimeinen luku on 9, mikä on suurempi kuin 5 edellinen luku 5 muunnetaan seuraavaksi kokonaisluvuksi eli 6

Esimerkki 2

Nyt näytän kuinka työskennellä soluviittauksen kanssa laskentataulukossa. Alla on numerot, jotka olen kirjoittanut taulukkoon.

Aloitetaan samojen arvojen kaappaaminen seuraavalle käyttämällä INTEGER- tietotyyppiä, SINGLE- tietotyyppiä ja DOUBLE- tyyppiä.

Alla on koodi, joka säilyttää arvot sarakkeista A - B INTEGER-tietotyypillä.

Koodi:

Sub Double_Ex () Dim k kokonaislukuna Dim CellValue kokonaislukuna k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Arvo = CellValue Seuraava k End Sub

Suoritetaan koodi pikanäppäimen F5 kautta nähdäksesi, mitkä arvot saamme sarakkeesta B.

Kun olemme käyttäneet kokonaislukua tietotyyppinä, saimme kaikki kokonaisluvut eli ilman desimaaleja.

Nyt muutan vain muuttujan VBA-tietotyypin kokonaisluvusta Single-arvoksi.

Koodi:

Sub Double_Ex () Dim k kokonaislukuna Dim CellValue yksittäisenä For k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Value = CellValue Seuraava k End Sub

Tämä koodi antaa alla olevan tuloksen.

Tällä kertaa saimme vain kaksi desimaalia.

Muuttaa nyt tietotyypin yksittäisestä kaksinkertaiseksi.

Koodi:

Sub Double_Ex () Dim k kokonaislukuna Dim CellValue kaksinkertaisena For k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Value = CellValue Seuraava k End Sub

Tämä palauttaa alla olevan tuloksen.

Olemme saaneet tarkat arvot sarakkeesta A.

Muistettavaa

  • Double on yhden tietotyypin parannettu tietotyyppi.
  • Siihen mahtuu 14 desimaalin tarkkuudella.
  • Se kuluttaa 8 tavua järjestelmämuistia.

Mielenkiintoisia artikkeleita...