Foxtable(狐表)用户栏目专家坐堂 → 单精度小数 和 双精度小数 的表达式求和的差异


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

主题:单精度小数 和 双精度小数 的表达式求和的差异

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
单精度小数 和 双精度小数 的表达式求和的差异  发帖心情 Post By:2021/8/2 14:17:00 [只看该作者]

什么原因啊?
含税金额 列 为单精度小数时,存在差异;如果改成双精度小数则不存在差异。
1、Convert(IIF([服务名称]='服务费',[含税金额],null)* 100, 'System.Int64') / 100

含税金额 = 112426.99时,通过表达式转换后,变成了112427;含税金额 =337280.97时,通过表达式转换后,变成了337281。


2、Convert(Sum(Child(结转_fa piao).服务费含税金额)* 100, 'System.Int64') / 100,来求和的结果差异。
子表中,明细数据为:求和为 1573977.86;而利用上边的求和表达式,结果是1573977.92。    求和差了0.06. 
100000
100000
24853.98
100000
100000
24853.98
100000
100000
24853.98
100000
12426.99
100000
100000
100000
37280.97
337281
112427


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/2 14:22:00 [只看该作者]

精度不够计算肯定有误差。对精度要求高的,可以改为高精度列

 回到顶部