以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 小数位数的问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2085)
|
-- 作者:cpayinyuan
-- 发布时间:2009/3/13 15:23:00
-- 小数位数的问题?
记得以前有人提过这个问题,但在论坛上搜索不到了,只好再提! 在表中某列A列,数据类型是double,我定义一个全局变量a1(Double型)等于表中某行的A列。在表中这个值的小数位数是0,但在窗口的输入框中中显示a1的时候,显示了很长的小数位数。不知怎么回事? 例如:在表中的值为49,但在窗口中显示为:49.000000000000007。 此主题相关图片如下:好长的小数.jpg
|
-- 作者:狐狸爸爸
-- 发布时间: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
执行完保存一下。
|
-- 作者:cpayinyuan
-- 发布时间:2009/3/13 15:38:00
--
以下是引用狐狸爸爸在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
执行完保存一下。
试了,没有用!
|
-- 作者:t_fs
-- 发布时间:2009/3/13 15:38:00
--
此问题确实存在! 当我把易表中的数据拷贝到狐表中时出现过这种问题,而且还导致在狐表中的计算结果与易表里的计算结果出现微小误差,(三万条记录)保留二位小数时误差可能在0.03左右。
有点困惑!
|
-- 作者:cpayinyuan
-- 发布时间:2009/3/13 15:40:00
--
最气人的是,参与计算的时候,计算的时候也会无缘无故的出现小数误差!例如,把它增加1,则变为:50.000……7,气死人了!
估计是系统有问题!
[此贴子已经被作者于2009-3-13 15:41:02编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/13 15:42:00
--
用绝招:
全部乘100,然后列类型改为整数,保存 接着列类型改为双精度小数,然后全部除以100。
|
-- 作者:t_fs
-- 发布时间:2009/3/13 15:52:00
--
以下是引用狐狸爸爸在2009-3-13 15:42:00的发言:用绝招: 全部乘100,然后列类型改为整数,保存 接着列类型改为双精度小数,然后全部除以100。
真是绝招,没有办法的办法!!
|
-- 作者:cpayinyuan
-- 发布时间:2009/3/13 15:58:00
--
我发现好像不是表的问题。好像是变量的问题。
是这样,在窗口中若直接显示表的值,不出现小数。
但是,我定义一个double型的全局变量,让它等于表中的该列的值,显示出来就成那样子了。
所以,我感觉不是数据转换的问题。好像系统本身有问题。把表的列改成整数列也不行。
但是很奇怪,不是所有的数字都出现问题,是偶尔。
[此贴子已经被作者于2009-3-13 15:58:04编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2009/3/13 16:07:00
--
或者在易表中导出为文本,然后在foxtable中导入文本。 以后有空的话,假如一个导入易表文件的功能,这样方便一些。
|
-- 作者:t_fs
-- 发布时间:2009/3/13 19:23:00
--
以下是引用狐狸爸爸在2009-3-13 16:07:00的发言: 或者在易表中导出为文本,然后在foxtable中导入文本。 以后有空的话,假如一个导入易表文件的功能,这样方便一些。
应该!同一个爸爸的儿子,为何还同祖不同宗呢?这样也方便易表爱好者向狐表这边转变。
|