以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  为什么四舍五入会保留小数错误呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172129)

--  作者:布鲁布鲁
--  发布时间:2021/9/24 21:09:00
--  为什么四舍五入会保留小数错误呢?
我想利用工程量*综合单价=合价,保留四舍五入计算
但是我计算“挖一般土方”时,实际上应该是38605.02*77.35=2986099.07
但是软件里利用表达式计算出来是2986099,请问为什么会差了七分钱呢?
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210924210350.png
图片点击可在新窗口打开查看

--  作者:布鲁布鲁
--  发布时间:2021/9/24 23:11:00
--  
同理这个数据一样的:231.22*576.25=133240.53 结果是133240.52元
请问我的问题出在哪了?
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210924230940.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/9/25 8:54:00
--  
怎么做的四舍五入?

把这3个列都改为高精度列

--  作者:布鲁布鲁
--  发布时间:2021/9/25 9:15:00
--  
Convert([合同内清单_工程量] * [合同内清单_综合单价] * 100+0.01, \'System.Int64\') / 100

刚才在论坛里找了以往的帖子,发现加上0.01就把问题解决了

--  作者:布鲁布鲁
--  发布时间:2021/9/25 14:00:00
--  
这个问题好像还是没有完美解决
我用的公式是:Convert([合同内清单_工程量] * [合同内清单_综合单价] * 100+0.01, \'System.Int64\') / 100
但是还是会计算错误
正确的结果应该是:4044524.96*0.0018=7280.1449,四舍五入应该为7280.14

差了一分钱,没有做平 ,心里好难受啊 
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210925135716.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/9/25 14:20:00
--  
上传实例看看,我测试没有问题
[此贴子已经被作者于2021/9/25 14:25:18编辑过]

--  作者:有点蓝
--  发布时间:2021/9/25 14:27:00
--  
合同内清单_工程量可能还有其它小数值,只是看不到,比如:4044524.96xxx,到后台数据库看看
--  作者:布鲁布鲁
--  发布时间:2021/9/25 14:28:00
--  
麻烦蓝版帮我看看 目前这个公式只有这一个数差一分钱
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:计量支付台账.zip


--  作者:有点蓝
--  发布时间:2021/9/25 14:57:00
--  
Convert([合同内清单_工程量] * [合同内清单_综合单价] * 100+0.001, \'System.Int64\') / 100
--  作者:布鲁布鲁
--  发布时间:2021/9/25 14:58:00
--  
这个公式是通用吗?还是只针对这一列呢?