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

表事件的datacolchanged事件代码
Select Case e.DataCol.Name
Case "差额调整", "差额备注", "系数" '如果是已结帐列的内容变动
Tables("对账单").Current("合计金额") = Tables("对账单.对账明细").Compute("sum(合计金额)"))
End Select
以下是引用有点蓝在2025/2/7 15:13:00的发言:
文本框是绑定列的?还是使用代码赋值的?
老师好,是代码赋值的。代码在下面呀
只看到给单元格赋值的代码,没看到给文本框控件赋值的代码
明白了,如果这样算的话是绑定。textbox绑定主表合计金额字段。但是主表的字段我也检查了,小数点位数是2位。
绑定的不应该有问题,看看这些控件的属性设置,有没有设置什么掩码。控件有没有什么事件?
搞定了,其实就是数值精度设置的问题。原本因为数值不大,都用单精度的,后来全部改为高精度就解决了。微软的算法真是害死人!气死我了!我发现狐表的数值如果要计算的话,根本就不能用单精度和双精度,直接用高精度是最好的解决办法。