VBA Double |如何在VBA中声明Double数据类型?

Excel VBA Double数据类型

VBA Double 是分配给声明变量的一种数据类型,它是“单”数据类型变量的改进版本或更长版本,通常用于存储更长的小数位。

VBA整数数据类型始终将十进制值转换为最接近的整数值,单个数据类型最多可以显示两位小数。另一方面,“ Double”数据类型可以存储来自 -1.79769313486231E308至-4.94065645841247E324 对于负值和正数,它可以存储来自 4.94065645841247E-324至1.79769313486232E308.

更重要的是,它占用了8个字节的内存。

使用VBA Double数据类型的示例

您可以在此处下载此VBA Double Excel模板– VBA Double Excel模板

范例#1

在我们看到“ Double”数据类型的示例之前,让我们看一下VBA中“ Integer”和“ Single”数据类型的示例代码。查看下面的VBA代码。

代码:

 Sub Integer_Ex()Dim k作为整数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作为单个k = 2.569999947164 MsgBox k End Sub 

通过快捷键F5运行代码,然后看看我们这次得到的数字是多少。

这次我们得到的结果是2.57,所以这次我们得到了两位小数。我们分配的原始值为2.569999947164,因此,在本例中,第三个,放置的十进制值为9,因此,由于该值大于5,因此将第二个十进制值6转换为7。

现在,将数据类型从“单”更改为“双”。

代码:

 Sub Integer_Ex()Dim k作为Double k = 2.569999947164 MsgBox k End Sub 

现在,手动运行代码,并在消息框结果中查看多少位数。

这次得到了所有的十进制值。在Double数据类型下,我们最多可以提供14位小数位。

如果您提供的任何值大于14位小数,都将转换为最接近的值。例如,请看下面的图片。

我输入的是15位小数而不是14位,如果按Enter键,它将仅返回14位数字。

而不是59(最后两位数字),我们得到了6,即由于最后一位数字是9(大于5),因此前一个数字5转换为下一个整数值,即6

范例#2

现在,我将在工作表中显示如何使用单元格引用。以下是我在工作表中输入的数字。

让我们通过使用以下命令开始捕获相同的值 整数 数据类型, 单身的 数据类型,以及 双倍的 类型。

以下是使用INTEGER数据类型保留A到B列中的值的代码。

代码:

 Sub Double_Ex()Dim k作为整数Dim CellValue作为整数对于k = 1到6 CellValue = Cells(k,1).Value Cells(k,2).Value = CellValue下一个k结束Sub 

让我们通过快捷键F5运行代码,以查看我们在B列中获得的值。

当我们将Integer用作数据类型时,我们得到了所有的整数,即没有小数。

现在,我将变量的vba数据类型从整数更改为Single。

代码:

 Sub Double_Ex()Dim k作为整数Dim CellValue作为单个对于k = 1到6 CellValue = Cells(k,1).Value Cells(k,2).Value = CellValue下一页k结束Sub 

此代码将给出以下结果。

这次我们只有两位小数。

现在,将数据类型从单一更改为双重。

代码:

 Sub Double_Ex()Dim k作为整数Dim CellValue作为Double对于k = 1到6 CellValue = Cells(k,1).Value Cells(k,2).Value = CellValue下一页k结束Sub 

这将返回以下结果。

我们从A列中获得了准确的值。

要记住的事情

  • Double是Single数据类型的改进数据类型。
  • 它最多可以保留14个小数位。
  • 它消耗了8个字节的系统内存。