Foxtable(狐表)用户栏目专家坐堂 → [求助]在窗口SQLTable中列与列计算出现误差


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

主题:[求助]在窗口SQLTable中列与列计算出现误差

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


加好友 发短信
等级:童狐 帖子:266 积分:2144 威望:0 精华:0 注册:2012/3/28 16:49:00
[求助]在窗口SQLTable中列与列计算出现误差  发帖心情 Post By:2021/5/26 21:37:00 [只看该作者]

老师您好!
我的主表中数值列类型都是高精度小数,其中"企业所得税预缴率"和"总公司管理费费率"列属性设置小数点四位,固定小数位数设置为True ,按百分比格式显示设置为True
DataColChanged事件中代码:
        e.DataRow("企业所得税预缴数") = e.DataRow("本次开piao金额") * e.DataRow("企业所得税预缴率")
        e.DataRow("总公司管理费交费数") = e.DataRow("本次开piao金额") * e.DataRow("总公司管理费费率")
以上所有计算能正常四舍五入,都正确。

但是在窗口SQLTable表  DataColChanged中事件中设置同样代码,会经常出误差(差1分)
在窗口AfterLoad事件中设置代码:
Tables("单项合同各项数据查询_开piao登记").DataTable.DataCols("本次开piao金额").SetFormat("#,##0.00")
Tables("单项合同各项数据查询_开piao登记").DataTable.DataCols("企业所得税预缴数").SetFormat("#,##0.00")
Tables("单项合同各项数据查询_开piao登记").DataTable.DataCols("总公司管理费交费数").SetFormat("#,##0.00")
Tables("单项合同各项数据查询_开piao登记").DataTable.DataCols("企业所得税预缴率").SetFormat("#,##0.00%")
Tables("单项合同各项数据查询_开piao登记").DataTable.DataCols("总公司管理费费率").SetFormat("#,##0.00%")

窗口SQLTable  DataColChanged中事件中设置以下代码(主表相同)
        e.DataRow("企业所得税预缴数") = e.DataRow("本次开piao金额") * e.DataRow("企业所得税预缴率")
        e.DataRow("总公司管理费交费数") = e.DataRow("本次开piao金额") * e.DataRow("总公司管理费费率")

请老师指教,谢谢!

后台正确

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210526213430.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210526213349.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2021/5/26 21:41:29编辑过]

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


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

可能是精度问题,四舍五入了。不过可能没有您那种数据,我随便录入的数据暂时测试不出来。做个例子发过来看看,或者查一分钱的是什么数据计算,发上来试试

把数据类型从numeric(28, 2)改回numeric(28, 4)试试

 回到顶部