以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么四舍五入会保留小数错误呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=172129) |
||||
-- 作者:布鲁布鲁 -- 发布时间:2021/9/24 21:09:00 -- 为什么四舍五入会保留小数错误呢? 我想利用工程量*综合单价=合价,保留四舍五入计算 但是我计算“挖一般土方”时,实际上应该是38605.02*77.35=2986099.07
|
||||
-- 作者:布鲁布鲁 -- 发布时间:2021/9/24 23:11:00 -- 同理这个数据一样的:231.22*576.25=133240.53 结果是133240.52元 |
||||
-- 作者:有点蓝 -- 发布时间: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 |
||||
-- 作者:有点蓝 -- 发布时间: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 -- 麻烦蓝版帮我看看 目前这个公式只有这一个数差一分钱
|
||||
-- 作者:有点蓝 -- 发布时间:2021/9/25 14:57:00 -- Convert([合同内清单_工程量] * [合同内清单_综合单价] * 100+0.001, \'System.Int64\') / 100 |
||||
-- 作者:布鲁布鲁 -- 发布时间:2021/9/25 14:58:00 -- 这个公式是通用吗?还是只针对这一列呢? |