VB6-CDbl截断问题

VB6-CDbl截断问题,vb6,Vb6,我在VB6中从字符串转换为双精度时遇到问题 dblValue = CDbl(strValue) 当strValue=88888888888888时,dblValue=8.888888888 9E+16,这将在强制转换期间截断数字。有人知道这件事吗 提前谢谢 没有办法解决这个问题,因为双精度只能精确到15位有效数字,但888888888有17位数字。如果将数字转换为双精度,则精度将丢失 如果需要精确保留所有数字,则应使用CDec的十进制类型。您可以将代码更改为使用十进制,而不是双精度。该数据类型

我在VB6中从字符串转换为双精度时遇到问题

dblValue = CDbl(strValue)
当strValue=88888888888888时,dblValue=8.888888888 9E+16,这将在强制转换期间截断数字。有人知道这件事吗


提前谢谢

没有办法解决这个问题,因为双精度只能精确到15位有效数字,但888888888有17位数字。如果将数字转换为双精度,则精度将丢失


如果需要精确保留所有数字,则应使用CDec的十进制类型。

您可以将代码更改为使用
十进制
,而不是
双精度
。该数据类型具有存储值所需的精度

不幸的是,VB6不支持直接创建
十进制
类型的变量,但您可以将数据存储为子类型
十进制
变量
,例如

Dim decValue As Variant
decValue = CDec(strValue)

您可以像处理任何其他数字数据类型一样操作此数据,只是变量没有严格的类型安全性。

非常感谢各位提供的信息,我非常感谢。我将尝试使用Decimal数据类型实现此功能。