Dvojitý datový typ Excel VBA
VBA Double je druh datového typu, který přiřadíme k deklaraci proměnných, což je vylepšená nebo delší verze proměnné datového typu „Single“ a obvykle se používá k ukládání delších desetinných míst.
Datový typ VBA Integer vždy převede desítkové hodnoty na nejbližší celočíselnou hodnotu. Jeden datový typ může zobrazovat až dvě číslice desetinných míst. Na druhou stranu datový typ „Double“ může ukládat hodnoty od -1,79769313486231E308 do –4,94065645841247E324 pro záporné hodnoty a pro kladná čísla může ukládat hodnoty od 4,94065645841247E-324 do 1,79769313486232E308 .
Ještě důležitější je, že spotřebovává 8 bajtů paměti.

Příklady použití VBA Double Data Type
Příklad č. 1
Než uvidíme příklad datového typu „Double“, podívejme se na ukázkové kódy datového typu „Integer“ a „Single“ ve VBA. Podívejte se na níže uvedený kód VBA.
Kód:
Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub

Proměnnou „k“ jsem deklaroval jako Integer a pro tuto proměnnou jsem přiřadil hodnotu 2,569999947164.
Spustíme tento kód ručně nebo pomocí klávesové zkratky aplikace Excel F5, abychom viděli konečnou hodnotu v okně se zprávou ve VBA.

Výsledek se zobrazuje jako 3 místo dodaného počtu 2,569999947164. Důvod, protože je VBA, převedl číslo na nejbližší celočíselnou hodnotu, tj. 3.
Když je desetinná hodnota větší než 0,5, převede se na další celočíselnou hodnotu a když je desetinná hodnota menší než 0,51, převede se na celočíselnou hodnotu.
Nyní změním datový typ z Integer na Single.
Kód:
Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub

Spusťte kód pomocí klávesové zkratky F5 a podívejte se, jaké číslo tentokrát získáme.

Tentokrát jsme dostali výsledek jako 2,57, takže tentokrát jsme dostali dvě desetinná místa. Původní hodnota, kterou jsme přiřadili, byla 2,569999947164, takže v tomto případě za třetí, umístěná desetinná hodnota je 9, takže protože je to více než 5, převedla desetinnou hodnotu druhého místa 6 na 7.
Nyní změňte datový typ z Single na Double.
Kód:
Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub

Nyní spusťte kód ručně a podívejte se, kolik číslic dostaneme ve výsledku pole se zprávou.

Tentokrát byly získány všechny desetinné hodnoty. V rámci datového typu Double můžeme dodat až 14 číslic desetinných míst.
Předpokládejme, že zadáte jakoukoli hodnotu větší než 14 desetinných míst, která bude převedena na nejbližší hodnotu. Podívejte se například na obrázek níže.

Místo 14 jsem zadal 15 desetinných míst. Pokud stisknu klávesu Enter, bude zpět pouze na 14 číslic.

Namísto 59 (poslední dvě číslice) jsme dostali 6, tj. Protože poslední číslice je 9, což je větší než 5, předchozí číslo 5 se převede na další celočíselnou hodnotu, tj. 6
Příklad č. 2
Nyní ukážu, jak pracovat s odkazem na buňku v listu. Níže jsou čísla, která jsem zadal do listu.

Pojďme zahájit zachycení stejných hodnot na další pomocí datového typu INTEGER , SINGLE datového typu a DOUBLE typu.
Níže je uveden kód pro uchování hodnot ze sloupce A do B pomocí datového typu INTEGER.
Kód:
Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 To 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Pojďme spustit kód pomocí klávesové zkratky F5, abychom zjistili, jaké hodnoty dostaneme ve sloupci B.

Když jsme jako datový typ použili celé číslo, dostali jsme všechna celá čísla, tj. Bez desetinných míst.
Teď jen změním datový typ VBA proměnné z celého čísla na Single.
Kód:
Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 To 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Tento kód poskytne níže uvedený výsledek.

Tentokrát jsme dostali pouze dvě desetinná místa.
Nyní se změní datový typ z jednoduchého na dvojitý.
Kód:
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

Tím se vrátí níže uvedený výsledek.

Máme přesné hodnoty ze sloupce A.
Věci k zapamatování
- Double je vylepšený datový typ Single datového typu.
- Může obsahovat až 14 desetinných míst.
- Spotřebuje 8 bajtů systémové paměti.