VB6-CDbl截断问题
我在VB6中从字符串转换为双精度时遇到问题VB6-CDbl截断问题,vb6,Vb6,我在VB6中从字符串转换为双精度时遇到问题 dblValue = CDbl(strValue) 当strValue=88888888888888时,dblValue=8.888888888 9E+16,这将在强制转换期间截断数字。有人知道这件事吗 提前谢谢 没有办法解决这个问题,因为双精度只能精确到15位有效数字,但888888888有17位数字。如果将数字转换为双精度,则精度将丢失 如果需要精确保留所有数字,则应使用CDec的十进制类型。您可以将代码更改为使用十进制,而不是双精度。该数据类型
dblValue = CDbl(strValue)
当strValue=88888888888888时,dblValue=8.888888888 9E+16,这将在强制转换期间截断数字。有人知道这件事吗
提前谢谢 没有办法解决这个问题,因为双精度只能精确到15位有效数字,但888888888有17位数字。如果将数字转换为双精度,则精度将丢失
如果需要精确保留所有数字,则应使用CDec的十进制类型。您可以将代码更改为使用
十进制
,而不是双精度
。该数据类型具有存储值所需的精度
不幸的是,VB6不支持直接创建十进制
类型的变量,但您可以将数据存储为子类型十进制
的变量
,例如
Dim decValue As Variant
decValue = CDec(strValue)
您可以像处理任何其他数字数据类型一样操作此数据,只是变量没有严格的类型安全性。非常感谢各位提供的信息,我非常感谢。我将尝试使用Decimal数据类型实现此功能。