vba 编程学习中遇到的问题!

下面是程序:我主要是怎么也想不到为什么程序运行结果是下面给出的结果:subDoubleVsDecimal()Dimdbxasdoubledimdbyasvariantdi... 下面是程序:我主要是怎么也想不到为什么程序运行结果是下面给出的结果:
sub DoubleVsDecimal()
Dim dbx as double
dim dby as variant
dim count as long
for count=1 to 100000
dbx=dbx+1
dby=dby+Cdec(0.00001)
net
debug.print"result in double:"&dbx
debug.print"result in decimal:"&dby
end sub
程序运行结果:
result in double:0.999999999998084
result in decimal:1
这段程序是我从一个电子书上看到了,实在是理解不了,大家给解释下,运行过程我都能看懂,就是不知道结果为什么是这个,肯定跟它的变量类型有关系。希望大家解释下!
展开
 我来答
OFFICE之门
2009-03-03 · Excel\Word\PPT函数公式、VBA技能大本营
OFFICE之门
采纳数:89 获赞数:304

向TA提问 私信TA
展开全部
该示例主要演示了Decimal和Double 数据类型的区别。CDec函数是将数值转换为Decimal类型。

Decimal 变量存储为 96 位(12 个字节)带符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001。

注意 此时,Decimal 数据类型只能在 Variant中使用,也就是说,不能声明一变量为 Decimal 的类型。不过可用 Cdec 函数,创建一个子类型为 Decimal 的 Variant。

Double
(双精度浮点型) 8 个字节 负数时从 -1.79769313486231E308 到
-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式