VBA Double - Kako prijaviti dvostruki tip podataka u VBA?

Dvostruka vrsta podataka programa Excel VBA

VBA Double vrsta je vrste podataka koju dodjeljujemo za deklariranje varijabli, a to je poboljšana ili dulja verzija varijable tipa "Single" i obično se koristi za pohranu duljih decimalnih mjesta.

Tip podataka VBA Integer uvijek pretvara decimalne vrijednosti u najbližu cjelobrojnu vrijednost. Pojedinačni tip podataka može prikazivati ​​do dvije znamenke decimalnih mjesta. S druge strane, tip podataka "Double" može pohraniti vrijednosti od -1,79769313486231E308 do -4,94065645841247E324 za negativne vrijednosti, a za pozitivne brojeve može pohraniti vrijednosti od 4,94065645841247E-324 do 1,79769313486232E308 .

Što je još važnije, troši 8 bajta memorije.

Primjeri upotrebe VBA dvostrukog tipa podataka

Primjer # 1

Prije nego što vidimo primjer tipa podataka "Double", pogledajmo primjere kodova tipa podataka "Integer" i "Single" u VBA. Pogledajte donji VBA kod.

Kodirati:

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

Promjenjivu "k" proglasio sam Integer, a za ovu sam varijablu dodijelio vrijednost kao 2,569999947164.

Pokrenimo ovaj kôd ručno ili pomoću excelove tipke prečaca F5 da bismo vidjeli konačnu vrijednost u okviru za poruke u VBA.

Rezultat se prikazuje kao 3 umjesto isporučenog broja od 2,569999947164. Razlog jer je VBA pretvorio broj u najbližu cjelobrojnu vrijednost, tj. 3.

Kada je decimalna vrijednost veća od 0,5, tada će se pretvoriti u sljedeću cijelu vrijednost, a kada je decimalna vrijednost manja od 0,51, pretvorit će se u ispodcjelobrojnu vrijednost.

Sada ću promijeniti tip podataka iz Integer u Single.

Kodirati:

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

Pokrenite kôd kroz tipku prečaca F5 i pogledajte koji broj dobivamo ovaj put.

Ovaj put smo dobili rezultat kao 2,57, pa smo ovaj put dobili dvije decimale. Izvorna vrijednost koju smo dodijelili bila je 2,569999947164, pa je u ovom slučaju, treće, postavljena decimalna vrijednost 9, pa je to više od 5, pretvorila je decimalnu vrijednost drugog mjesta 6 u 7.

Sada promijenite vrstu podataka iz Single u Double.

Kodirati:

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

Sada pokrenite kod ručno i pogledajte koliko znamenki dobivamo u rezultatu okvira za poruku.

Ovaj put je dobio sve decimalne vrijednosti. Pod tipom Double podaci možemo dostaviti do 14 znamenki decimalnih mjesta.

Pretpostavimo da unesete bilo koju vrijednost veću od 14 decimalnih mjesta koja će se pretvoriti u najbližu vrijednost. Na primjer, pogledajte donju sliku.

Utipkao sam 15 decimalnih mjesta umjesto 14. Ako pritisnem tipku enter, vratit će se samo na 14 znamenki.

Umjesto 59 (posljednje dvije znamenke), dobili smo 6, budući da je zadnja znamenka 9, što je više od 5, prethodni broj 5 pretvara se u sljedeću cjelobrojnu vrijednost, tj. 6

Primjer # 2

Sada ću na radnom listu pokazati kako raditi s referencama stanica. Ispod su brojevi koje sam unio u radni list.

Pokrenimo hvatanje istih vrijednosti u sljedeće pomoću tipa podataka INTEGER, tipa podataka SINGLE i tipa DOUBLE .

Ispod je kod za zadržavanje vrijednosti iz stupca A do B pomoću tipa podataka INTEGER.

Kodirati:

Sub Double_Ex () Dim k As Integer Dim CellValue As Integer Za k = 1 do 6 CellValue = Cell (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Provedimo kôd kroz tipku prečaca F5 da vidimo koje vrijednosti dobivamo u stupcu B.

Kad smo koristili Integer kao vrstu podataka, dobili smo sve cijele brojeve, tj. Bez decimala.

Sada ću samo promijeniti tip podataka VBA varijable iz cijelog u Single.

Kodirati:

Sub Double_Ex () Dim k As Integer Dim CellValue As Single Za k = 1 do 6 CellValue = Cell (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Ovaj će kôd dati sljedeći rezultat.

Ovaj put dobili smo samo dvije decimale.

Sada mijenja vrstu podataka iz jedne u dvostruku.

Kodirati:

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

Ovo će vratiti donji rezultat.

Točne vrijednosti dobili smo iz stupca A.

Stvari koje treba zapamtiti

  • Double je poboljšani tip podataka Single tipa podataka.
  • Može sadržavati do 14 decimalnih mjesta.
  • Zauzima 8 bajta sistemske memorije.

Zanimljivi članci...