易表在线答疑技术与交流用户社区 → [讨论]奇怪的INT函数,请求支援


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

主题:[讨论]奇怪的INT函数,请求支援

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


加好友 发短信
等级:论坛游民 帖子:111 积分:10 威望:0 精华:0 注册:2007/5/14 11:20:00
[讨论]奇怪的INT函数,请求支援  发帖心情 Post By:2010/12/11 12:09:00 [只看该作者]

   因为太简单,就不上传文件了!    
   很简单一个表,简单的一个刷新公式c=a*b,然后用INT取整,却在月底对帐时让我郁闷了。少了一块钱,反复比对才找到错误出在INT函数上。C的刷新公式为INT(a*b),a的值是21.49,b的值是5400,都是输入的数据而不是计算得出的,这样就排除了小数位显示不全的可能。21.49X5400=116046,可INT一套就成了116045了,打电话咨询被告知可能是无限接近造成的偏差,让我用round函数,可我是要去零取整呀,用round那结果就没法用了。而且这两个数相乘跟6X6=36有什么区别呀!!!随数据量的增大,类似的错误恐怕还会出现,而现在我只能用21.49*5400.01才能修正,呵呵!
哪位老师有更好的办法?

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


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

Format(21.49 * 5400,"0")=116046
-Int(-21.49 * 5400)=116046
Round(21.49 * 5400,0)=116046

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


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

这样试试
egd文件下载

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


加好友 发短信
等级:业余侠客 帖子:359 积分:1875 威望:0 精华:0 注册:2006/8/13 15:28:00
  发帖心情 Post By:2010/12/11 20:43:00 [只看该作者]

Int(Eval(21.49*5400))可以,因为int函数是对一个数的取整,如果是表达式,可以先计算再取整。

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


加好友 发短信
等级:论坛游民 帖子:111 积分:10 威望:0 精华:0 注册:2007/5/14 11:20:00
  发帖心情 Post By:2010/12/26 13:28:00 [只看该作者]

多谢各位,好久没上来看了,等下我都试一下!

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


加好友 发短信
等级:论坛游民 帖子:111 积分:10 威望:0 精华:0 注册:2007/5/14 11:20:00
  发帖心情 Post By:2010/12/26 14:10:00 [只看该作者]

2楼 wjq1072 前辈的Round(21.49 * 5400,0)=116046,不适用。这样就4舍5入了,而单价X数量得出的金额付款时是会把小数部分去掉的,5入后的计算结果就会比实际付款多一块钱,这样会产生不少多一块的结果,月底对帐就麻烦了。
format(21.49 * 5400,"0")=116046和round怎么是同样的结果,也4舍5入了
-Int(-a * b)也是同样的结果

3楼和4楼的方法有效,谢谢各位!!!

-=-=-=- 以下内容由 swws2010年12月26日 02:12pm 时添加 -=-=-=-
Round函数仅能解决INT处理21.49*5400结果错误的问题,对于小数部分我需要全舍,取整。感觉INT函数有个Bug!


 回到顶部