易表在线答疑技术与交流用户社区 → 为何有时会出错


  共有14254人关注过本帖树形打印复制链接

主题:为何有时会出错

帅哥哟,离线,有人找我吗?
swg-1954
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:820 积分:2154 威望:0 精华:0 注册:2010/5/12 19:07:00
为何有时会出错  发帖心情 Post By:2010/10/26 23:16:00 [只看该作者]

在500多个数据中偶发现一个数据不对,见表1。
表2是用公式后改成为正确的。请教表1为何会出错?egd文件下载

 回到顶部
帅哥哟,离线,有人找我吗?
搞不懂
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 帖子:465 积分:1051 威望:0 精华:0 注册:2006/11/24 23:07:00
  发帖心情 Post By:2010/10/27 0:17:00 [只看该作者]

表1的小数位数设为两位了

 回到顶部
帅哥哟,离线,有人找我吗?
swg-1954
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:820 积分:2154 威望:0 精华:0 注册:2010/5/12 19:07:00
  发帖心情 Post By:2010/10/27 8:35:00 [只看该作者]

你没搞清楚。问题是为什么易表在这种情况下出错,而且是500多条记录中只有这一条记录出错,是公式问题还是易表问题。如果是公式出错,其它为何是对的。设置的都是两位小数,前者出错,后者错误。为何?

 回到顶部
帅哥哟,离线,有人找我吗?
swg-1954
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:820 积分:2154 威望:0 精华:0 注册:2010/5/12 19:07:00
  发帖心情 Post By:2010/10/27 9:04:00 [只看该作者]

没人解答。自己顶一下。

 回到顶部
帅哥哟,离线,有人找我吗?
lyang70
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2010/10/27 10:06:00 [只看该作者]

[这个贴子最后由lyang70在 2010/10/27 10:12am 第 1 次编辑]

没有问题呀?
表1金额列公式:([本次]-[上次])*0.5283
表2金额列公式:Round(([本次]-[上次])*0.5283,2)

——首先可以肯定的是两个公式结果值不一样:
1、表1公式得到的值为3671.685(虽然单元格显示数值为3671.68,实际值其实是3671.685,你可以通过加减乘除将单元格中的数值参与运算即可验证其值是“3671.68”还是“3671.685”)。
2、表2公式得到的值是3671.69,这是因为楼主的公式要求为四舍五入保留两位小数所得。


 回到顶部
帅哥哟,离线,有人找我吗?
wjq1072
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2010/10/27 10:29:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
swg-1954
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:820 积分:2154 威望:0 精华:0 注册:2010/5/12 19:07:00
  发帖心情 Post By:2010/10/27 17:34:00 [只看该作者]

关键是500多个数据都是用减少小数点位数自动四舍五入同时处理的,为什么其它数据都正确,唯有这个不正确。egd文件下载

 回到顶部
帅哥哟,离线,有人找我吗?
Czy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2010/10/27 18:59:00 [只看该作者]

用Round强制转化一下吧,浮点问题有时所见未必所得。

 回到顶部
帅哥哟,离线,有人找我吗?
swg-1954
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:820 积分:2154 威望:0 精华:0 注册:2010/5/12 19:07:00
  发帖心情 Post By:2010/10/27 19:45:00 [只看该作者]

再上传一份请你们测试一下。为什么0.6850不能在减少小数点为两位时为0.69,而0.3850在同样情况下为0.39egd文件下载

-=-=-=- 以下内容由 swg-19542010年10月27日 07:51pm 时添加 -=-=-=-
是易表的内部程序上有缺陷还是哪儿有问题,只有找出原因才能避免今后,达到这个问题处理的完美。按500分之一有一条错的话,那么上万几十万数据处理那就是大错了。你们说对吗。

 回到顶部
帅哥哟,离线,有人找我吗?
wjq1072
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2010/10/27 19:48:00 [只看该作者]

呵呵两种方法是有区别的,我的理解:
1、用列设置增加或减少一个数字的小数位来调整显示的内容,虽然也体现“四舍五入”,但是数字的原值没有变仍然是精确值。
2、而用函数Int()“取整”、Round()“四舍五入”取2位小数后,这个数字就不是原值了,而是一个近似值了。
因为你采用的方法不同,而出现计算结果的不同。

 回到顶部
总数 28 1 2 3 下一页