以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在窗口SQLTable中列与列计算出现误差 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=168914) |
-- 作者:沪上游客 -- 发布时间:2021/5/26 21:37:00 -- [求助]在窗口SQLTable中列与列计算出现误差 老师您好! 我的主表中数值列类型都是高精度小数,其中"企业所得税预缴率"和"总公司管理费费率"列属性设置小数点四位,固定小数位数设置为True ,按百分比格式显示设置为True 表DataColChanged事件中代码: e.DataRow("企业所得税预缴数") = e.DataRow("本次开票金额") * e.DataRow("企业所得税预缴率") e.DataRow("总公司管理费交费数") = e.DataRow("本次开票金额") * e.DataRow("总公司管理费费率") 以上所有计算能正常四舍五入,都正确。 但是在窗口SQLTable表 DataColChanged中事件中设置同样代码,会经常出误差(差1分) 在窗口AfterLoad事件中设置代码: Tables("单项合同各项数据查询_开票登记").DataTable.DataCols("本次开票金额").SetFormat("#,##0.00") Tables("单项合同各项数据查询_开票登记").DataTable.DataCols("企业所得税预缴数").SetFormat("#,##0.00") Tables("单项合同各项数据查询_开票登记").DataTable.DataCols("总公司管理费交费数").SetFormat("#,##0.00") Tables("单项合同各项数据查询_开票登记").DataTable.DataCols("企业所得税预缴率").SetFormat("#,##0.00%") Tables("单项合同各项数据查询_开票登记").DataTable.DataCols("总公司管理费费率").SetFormat("#,##0.00%") 窗口SQLTable DataColChanged中事件中设置以下代码(主表相同) e.DataRow("企业所得税预缴数") = e.DataRow("本次开票金额") * e.DataRow("企业所得税预缴率") e.DataRow("总公司管理费交费数") = e.DataRow("本次开票金额") * e.DataRow("总公司管理费费率") 请老师指教,谢谢! 后台正确 [此贴子已经被作者于2021/5/26 21:41:29编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/5/27 14:12:00 -- 可能是精度问题,四舍五入了。不过可能没有您那种数据,我随便录入的数据暂时测试不出来。做个例子发过来看看,或者查一分钱的是什么数据计算,发上来试试 |