Foxtable(狐表)用户栏目专家坐堂 → [求助]表达式四舍五入的数据怎么不对啊


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

主题:[求助]表达式四舍五入的数据怎么不对啊

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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]表达式四舍五入的数据怎么不对啊  发帖心情 Post By:2014/5/6 9:14:00 [只看该作者]

表达式为:IIF(IsNull([笔试成绩],0) + IsNull([面试成绩],0) = 0,0,Convert(([笔试成绩]*0.5 + [面试成绩]*0.5) * 100, 'System.Int64')  / 100)
例如数据:笔试成绩为:59.79,面试成绩为:88.6,总成绩(保留两位小数)算法为:笔试成绩*0.5+面试成绩*0.5,用表达式算算出来的数据为:74.19,而用计算器算出的是:74.20,错在哪儿了,请赐教,谢谢

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/6 9:16:00 [只看该作者]

双精度小数误差吧,你用高精度小数看看

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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/6 9:27:00 [只看该作者]

改为高精度小数,同样出现上述问题,求解

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/6 9:29:00 [只看该作者]

上例子看看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/6 9:31:00 [只看该作者]

你好,我用计算器算了一下.是74.195啊  哪里来的74.20?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/6 9:36:00 [只看该作者]

我测试了一下四舍五入是没问题的.可以获得74.20  你上个例子看看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/6 10:01:00 [只看该作者]

 表达式的不是标准的四舍五入,而是四舍六入五成双,需要在那个基础上再处理一下的。

 

Convert((74.185 + 0.00001) * 100, 'System.Int64') / 100

 

http://www.foxtable.com/help/topics/0281.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/6 10:55:00 [只看该作者]

如何是保留小数点后两位的,应该是+0.001吗

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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/6 11:01:00 [只看该作者]

如果保留小数点后两位,+0.001,刚好和计算器计算的对上了,谢谢有点甜,真厉害

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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/6 11:14:00 [只看该作者]

但又遇到一个问题,举例:小数点后保留两位,如:3.354,如果+0.001,变成了3.355,3.354的时候保留2位为:3.35,而加上0.001后,再保留两位时,就变成了3.36,这怎么解决,谢谢

 回到顶部
总数 12 1 2 下一页