Excel VBA Double Data Type
VBA Double е вид тип данни, който присвояваме за деклариране на променливи, който е подобрена или по-дълга версия на променливата от тип „Single“ и обикновено се използва за съхраняване на по-дълги десетични знаци.
Типът данни на VBA Integer винаги преобразува десетични стойности в най-близката целочислена стойност. Единичният тип данни може да показва до две цифри след десетичната запетая. От друга страна типът "Double" може да съхранява стойности от -1.79769313486231E308 до -4.94065645841247E324 за отрицателни стойности, а за положителни числа може да съхранява стойности от 4.94065645841247E-324 до 1.79769313486232E308 .
По-важното е, че консумира 8 байта памет.

Примери за използване на тип VBA Double Data
Пример # 1
Преди да видим примера за типа данни „Double“, нека разгледаме примерните кодове на типа данни „Integer“ и „Single“ във VBA. Вижте долния код на VBA.
Код:
Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub

Декларирах променливата „k“ като Integer и за тази променлива съм задал стойността като 2,569999947164.
Нека стартираме този код ръчно или с помощта на клавиш за бърз достъп на Excel F5, за да видим крайната стойност в полето за съобщения във VBA

Резултатът се показва като 3 вместо предоставеното число от 2,569999947164. Причината, тъй като е VBA е преобразувал числото до най-близката целочислена стойност, т.е. 3.
Когато десетичната стойност е повече от 0,5, тогава тя ще се преобразува в следващата целочислена стойност, а когато десетичната стойност е по-малка от 0,51, тогава ще се преобразува в по-ниска стойност
Сега ще сменя типа данни от Integer на Single.
Код:
Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub

Пуснете кода чрез клавиш за бърз достъп F5 и вижте кой номер получаваме този път.

Този път получихме резултата като 2,57, така че този път получихме два знака след десетичната запетая. Първоначалната стойност, която сме задали, е 2,569999947164, така че в този случай, трето, поставената десетична стойност е 9, така че тъй като това е повече от 5, тя преобразува втората десетична стойност 6 в 7.
Сега променете типа данни от Single на Double.
Код:
Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub

Сега стартирайте кода ръчно и вижте колко цифри получаваме в резултата от полето за съобщение.

Този път получи всички десетични стойности. Можем да предоставим до 14 цифри след десетичната запетая под тип Double данни.
Да предположим, че предоставяте всяка стойност, по-голяма от 14 десетични позиции, ще бъде преобразувана до най-близката стойност. Например погледнете изображението по-долу.

Въвел съм 15 знака след десетичната запетая вместо 14. Ако натисна клавиша за въвеждане, той ще се върне само до 14 цифри.

Вместо 59 (последните две цифри), получихме 6 т.е., тъй като последната цифра е 9, което е по-голямо от 5, предишното число 5 се преобразува в следващото цяло число, т.е.
Пример # 2
Сега ще покажа как да работя с препратка към клетки в работен лист. По-долу са числата, които съм въвел в работния лист.

Нека започнем улавянето на едни и същи стойности към следващата, като използваме INTEGER тип данни, ЕДИНЕН тип данни и ДВОЕН тип.
По-долу е даден кодът за запазване на стойности от колона А до Б, като се използва типът данни INTEGER.
Код:
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

Нека пуснем кода чрез клавиш за бърз достъп F5, за да видим какви стойности получаваме в колона Б.

Когато използваме Integer като тип данни, получаваме всички числа, т.е. без десетични знаци.
Сега просто ще променя типа данни на VBA на променлива от цяло число на единично.
Код:
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

Този код ще даде следния резултат.

Този път получихме само два знака след десетичната запетая.
Сега променя типа данни от единичен на двоен.
Код:
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

Това ще върне резултата по-долу.

Имаме точни стойности от колона А.
Неща за запомняне
- Double е подобрен тип данни от Single data type.
- Той може да побере до 14 знака след десетичната запетая.
- Той консумира 8 байта системна памет.