以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- sum函数的精度问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194934) |
-- 作者:hitzfeld -- 发布时间:2025/2/7 14:56:00 -- sum函数的精度问题 父子表,用sum合计子表的合计金额,GrandTotal的合计数值是对的,但是用sum统计到主表就自动四舍五入了??我检查了很久,没有设置要四舍五入到一位啊?并且是部分表四舍五入,部分不会?我尝试了用(sum(合计金额),2)或者round函数,结局都是一样的。不知道是为什么?? 表事件的datacolchanged事件代码 Select Case e.DataCol.Name Case "差额调整", "差额备注", "系数" \'如果是已结帐列的内容变动 Tables("对账单").Current("合计金额") = Tables("对账单.对账明细").Compute("sum(合计金额)")) End Select |
-- 作者:有点蓝 -- 发布时间:2025/2/7 15:13:00 -- 文本框是绑定列的?还是使用代码赋值的? |
-- 作者:hitzfeld -- 发布时间:2025/2/7 15:20:00 -- 以下是引用有点蓝在2025/2/7 15:13:00的发言: 文本框是绑定列的?还是使用代码赋值的? 老师好,是代码赋值的。代码在下面呀
|
-- 作者:有点蓝 -- 发布时间:2025/2/7 15:21:00 -- 只看到给单元格赋值的代码,没看到给文本框控件赋值的代码 |
-- 作者:hitzfeld -- 发布时间:2025/2/7 15:28:00 -- 明白了,如果这样算的话是绑定。textbox绑定主表合计金额字段。但是主表的字段我也检查了,小数点位数是2位。 |
-- 作者:有点蓝 -- 发布时间:2025/2/7 15:39:00 -- 绑定的不应该有问题,看看这些控件的属性设置,有没有设置什么掩码。控件有没有什么事件? |
-- 作者:hitzfeld -- 发布时间:2025/2/7 22:58:00 -- 搞定了,其实就是数值精度设置的问题。原本因为数值不大,都用单精度的,后来全部改为高精度就解决了。微软的算法真是害死人!气死我了!我发现狐表的数值如果要计算的话,根本就不能用单精度和双精度,直接用高精度是最好的解决办法。 |