以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- 为何有时会出错 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=20163) |
-- 作者:swg-1954 -- 发布时间:2010/10/26 23:16:00 -- 为何有时会出错 在500多个数据中偶发现一个数据不对,见表1。 表2是用公式后改成为正确的。请教表1为何会出错?egd文件下载 |
-- 作者:搞不懂 -- 发布时间:2010/10/27 0:17:00 -- 表1的小数位数设为两位了 |
-- 作者:swg-1954 -- 发布时间:2010/10/27 8:35:00 -- 你没搞清楚。问题是为什么易表在这种情况下出错,而且是500多条记录中只有这一条记录出错,是公式问题还是易表问题。如果是公式出错,其它为何是对的。设置的都是两位小数,前者出错,后者错误。为何? |
-- 作者:swg-1954 -- 发布时间:2010/10/27 9:04:00 -- 没人解答。自己顶一下。 |
-- 作者:lyang70 -- 发布时间:2010/10/27 10:06:00 -- [这个贴子最后由lyang70在 2010/10/27 10:12am 第 1 次编辑] 没有问题呀? 表1金额列公式:([本次]-[上次])*0.5283 表2金额列公式:Round(([本次]-[上次])*0.5283,2) ——首先可以肯定的是两个公式结果值不一样: |
-- 作者:wjq1072 -- 发布时间:2010/10/27 10:29:00 -- egd文件下载 |
-- 作者:swg-1954 -- 发布时间:2010/10/27 17:34:00 -- 关键是500多个数据都是用减少小数点位数自动四舍五入同时处理的,为什么其它数据都正确,唯有这个不正确。egd文件下载 |
-- 作者:Czy -- 发布时间:2010/10/27 18:59:00 -- 用Round强制转化一下吧,浮点问题有时所见未必所得。 |
-- 作者:swg-1954 -- 发布时间:2010/10/27 19:45:00 -- 再上传一份请你们测试一下。为什么0.6850不能在减少小数点为两位时为0.69,而0.3850在同样情况下为0.39egd文件下载 -=-=-=- 以下内容由 swg-1954 在 2010年10月27日 07:51pm 时添加 -=-=-=- 是易表的内部程序上有缺陷还是哪儿有问题,只有找出原因才能避免今后,达到这个问题处理的完美。按500分之一有一条错的话,那么上万几十万数据处理那就是大错了。你们说对吗。 |
-- 作者:wjq1072 -- 发布时间:2010/10/27 19:48:00 -- 呵呵两种方法是有区别的,我的理解: 1、用列设置增加或减少一个数字的小数位来调整显示的内容,虽然也体现“四舍五入”,但是数字的原值没有变仍然是精确值。 2、而用函数Int()“取整”、Round()“四舍五入”取2位小数后,这个数字就不是原值了,而是一个近似值了。 因为你采用的方法不同,而出现计算结果的不同。 |