记得以前有人提过这个问题,但在论坛上搜索不到了,只好再提!
在表中某列A列,数据类型是double,我定义一个全局变量a1(Double型)等于表中某行的A列。在表中这个值的小数位数是0,但在窗口的输入框中中显示a1的时候,显示了很长的小数位数。不知怎么回事?
例如:在表中的值为49,但在窗口中显示为:
49.000000000000007。
此主题相关图片如下:好长的小数.jpg
你的数据是导入的吧?
在命令窗口执行:
For Each dr As DataRow in CurrentTable.DataTable.DataRows
if dr.Isnull("某列") = False Then
dr("某列") = Math.Round(dr("某列"),2)
End If
Next
执行完保存一下。
以下是引用狐狸爸爸在2009-3-13 15:28:00的发言:
你的数据是导入的吧?
在命令窗口执行:
For Each dr As DataRow in CurrentTable.DataTable.DataRows
if dr.Isnull("某列") = False Then
dr("某列") = Math.Round(dr("某列"),2)
End If
Next
执行完保存一下。
试了,没有用!
此问题确实存在!
当我把易表中的数据拷贝到狐表中时出现过这种问题,而且还导致在狐表中的计算结果与易表里的计算结果出现微小误差,(三万条记录)保留二位小数时误差可能在0.03左右。
有点困惑!
最气人的是,参与计算的时候,计算的时候也会无缘无故的出现小数误差!例如,把它增加1,则变为:50.000……7,气死人了!
估计是系统有问题!
[此贴子已经被作者于2009-3-13 15:41:02编辑过]
我发现好像不是表的问题。好像是变量的问题。
是这样,在窗口中若直接显示表的值,不出现小数。
但是,我定义一个double型的全局变量,让它等于表中的该列的值,显示出来就成那样子了。
所以,我感觉不是数据转换的问题。好像系统本身有问题。把表的列改成整数列也不行。
但是很奇怪,不是所有的数字都出现问题,是偶尔。
[此贴子已经被作者于2009-3-13 15:58:04编辑过]
或者在易表中导出为文本,然后在foxtable中导入文本。
以后有空的话,假如一个导入易表文件的功能,这样方便一些。
以下是引用狐狸爸爸在2009-3-13 16:07:00的发言:
或者在易表中导出为文本,然后在foxtable中导入文本。
以后有空的话,假如一个导入易表文件的功能,这样方便一些。
应该!同一个爸爸的儿子,为何还同祖不同宗呢?这样也方便易表爱好者向狐表这边转变。