Excel 十进制数据类型的精度是多少?
我找不到哪一个州的VBA对数字e有一个特殊的变量,所以我想小数位数足够大了。 手册规定如下: 您可以对货币值使用十进制变量。优点是数值精确。双精度数据类型速度更快,所需内存更少,但会出现舍入错误。Decimal数据类型将完全精确到小数点后28位 我尝试过使用Excel 十进制数据类型的精度是多少?,excel,vba,floating-accuracy,Excel,Vba,Floating Accuracy,我找不到哪一个州的VBA对数字e有一个特殊的变量,所以我想小数位数足够大了。 手册规定如下: 您可以对货币值使用十进制变量。优点是数值精确。双精度数据类型速度更快,所需内存更少,但会出现舍入错误。Decimal数据类型将完全精确到小数点后28位 我尝试过使用dime e@(“@”是手册中的十进制标识符)以及这种格式 Dim MyDecimal As Variant MyDecimal = CDec(3000000000000) 从 但是,当我尝试使用值2.71828182845904535
dime e@
(“@”是手册中的十进制标识符)以及这种格式
Dim MyDecimal As Variant
MyDecimal = CDec(3000000000000)
从
但是,当我尝试使用值2.718281828459045353602874713
初始化e
时,它会向下舍入到2.71828182845905
。这是怎么回事?是否可以不使用28位小数
这是怎么回事?是否可以不使用28位小数
这是因为,当您这样做时,在CDec
转换它之前,该值被读取为一个Double,因此被截断为该数据类型可以保存的值
?CDec(2.718281828459045353602874713)
2.71828182845904
? CDec(CDbl(“2.718281828459045235602874713”))
2.71828182845904
? CDec(“2.718281828459045353602874713”)
2.7182818284590452353602874713
这是怎么回事?是否可以不使用28位小数
这是因为,当您这样做时,在CDec
转换它之前,该值被读取为一个Double,因此被截断为该数据类型可以保存的值
?CDec(2.718281828459045353602874713)
2.71828182845904
? CDec(CDbl(“2.718281828459045235602874713”))
2.71828182845904
? CDec(“2.718281828459045353602874713”)
2.7182818284590452353602874713
在线查看文档时,您需要注意不要查看VB.NET,它与VBA是完全不同的平台,只是在语法意义上不同。有一些关于十进制的有用信息。可能有助于您的帖子包含一个完整的测试示例,因为在Excel中输入和输出十进制类型的数字主要意味着使用文本(因为具有数字格式的单元格不能保持与十进制类型相同的精度)。在线检查文档时,您需要小心不要查看VB.NET,这是一个与VBA完全不同的平台,除了在语法意义上。有一些关于十进制的有用信息。这可能有助于您的文章包含一个完整的测试示例,因为在Excel中输入和输出十进制类型的数字主要意味着使用文本(因为具有数字格式的单元格不能保持与十进制类型相同的精度)