Foxtable(狐表)用户栏目专家坐堂 → sum函数的精度问题


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

主题:sum函数的精度问题

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


加好友 发短信
等级:二尾狐 帖子:541 积分:5315 威望:0 精华:0 注册:2017/9/1 23:28:00
sum函数的精度问题  发帖心情 Post By:2025/2/7 14:56:00 [只看该作者]

父子表,用sum合计子表的合计金额,GrandTotal的合计数值是对的,但是用sum统计到主表就自动四舍五入了??我检查了很久,没有设置要四舍五入到一位啊?并且是部分表四舍五入,部分不会?我尝试了用(sum(合计金额),2)或者round函数,结局都是一样的。不知道是为什么??

图片点击可在新窗口打开查看此主题相关图片如下:进位误差.jpg
图片点击可在新窗口打开查看

表事件的datacolchanged事件代码
Select Case e.DataCol.Name
    Case "差额调整", "差额备注", "系数" '如果是已结帐列的内容变动
          Tables("对账单").Current("合计金额") = Tables("对账单.对账明细").Compute("sum(合计金额)"))
End Select



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


加好友 发短信
等级:超级版主 帖子:112355 积分:572031 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/7 15:13:00 [只看该作者]

文本框是绑定列的?还是使用代码赋值的?

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


加好友 发短信
等级:二尾狐 帖子:541 积分:5315 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2025/2/7 15:20:00 [只看该作者]

以下是引用有点蓝在2025/2/7 15:13:00的发言:
文本框是绑定列的?还是使用代码赋值的?

老师好,是代码赋值的。代码在下面呀


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


加好友 发短信
等级:超级版主 帖子:112355 积分:572031 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/7 15:21:00 [只看该作者]

只看到给单元格赋值的代码,没看到给文本框控件赋值的代码

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


加好友 发短信
等级:二尾狐 帖子:541 积分:5315 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2025/2/7 15:28:00 [只看该作者]

明白了,如果这样算的话是绑定。textbox绑定主表合计金额字段。但是主表的字段我也检查了,小数点位数是2位。

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


加好友 发短信
等级:超级版主 帖子:112355 积分:572031 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/7 15:39:00 [只看该作者]

绑定的不应该有问题,看看这些控件的属性设置,有没有设置什么掩码。控件有没有什么事件?

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


加好友 发短信
等级:二尾狐 帖子:541 积分:5315 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2025/2/7 22:58:00 [只看该作者]

搞定了,其实就是数值精度设置的问题。原本因为数值不大,都用单精度的,后来全部改为高精度就解决了。微软的算法真是害死人!气死我了!我发现狐表的数值如果要计算的话,根本就不能用单精度和双精度,直接用高精度是最好的解决办法。

 回到顶部