ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 13688|回复: 16

[求助] 关于ROUND函数四舍五入错误的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-12 08:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
大家都知道,ROUND函数是根据数据保留位数进行4舍5入。但最近小弟发现,它不能做到真正的4舍5入。
举个例子,比如说对0.50、1.50、2.50、3.50四个数进行数据修约至个位数,用ROUND(0.50,0)...,得到的结果是1、2、3、4,这里面第1项和第3项就是错误的,正确的结果为0、2、2、4,这就是“奇进偶不进(GB/T 8170-2008 数值修约规则与极限数值的表示和判定)”。所以请高人赐教,在EXCEL中如何得到正确的修约结果。

另外,再举个例子,如数字0.004、0.5000和0.6500两个数,如果保留2位小数,用ROUND函数得到的结果分别是0、0.5和0.65,显然0.5是错误的,正确的应该是0.50。如果设置单元格格式为2位有效数字,得到的结果是0.00、0.50、0.65,显然,0.00这种写法是错误的,这就发生了在ROUND函数和单元格设置上的矛盾现象。也请各位高手指点迷津,如何改正。

(上述所列例证仅是规范中的两个条目,也是在规范应用过程中出现问题最多的)

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:05 | 显示全部楼层
你说的问题其实没有问题,工作中的四舍五入 我就要 0.5  变为 1, round正合我意, 至于你说 0.00这种写法是错误的 ,我倒觉得它是对的.

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:14 | 显示全部楼层
为什么1.5的小数就进位,0.5的小数就不进位?如果奇数进位偶数不进可以用下面的公式
=IF(MOD(INT(A1),2),ROUND(A1,0),ROUND(A1,0)-1)
=ROUND(A1-(MOD(INT(A1),2)=0)*0.5,0)

[ 本帖最后由 shaowu459 于 2009-7-12 09:19 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:31 | 显示全部楼层
http://www.cnblogs.com/samcn/archive/2009/06/05/1497094.html
文章开头说:“现在被广泛使用的数字修约规则主要有四舍五入规则和四舍六入五留双规则。


楼主所说的是四舍六入五留双规则吧,这个是为了避免四舍五入产生误差的休约规则,是四舍五入规则的一种修正,而不是说只有这个规则才是正统。只是适应你不同的休约要求而为。具体情况下还可能有更多种,比如说0.2进位的要求,这样就需要用公式来操作。
比如说准则规定了一中情况下某种情况下企业间应确认为关联方,而后又在这种情况下具体解释了还有两种情况A,B,说A情况不需要确认为关联方。咱们总不能只看到A情况下不是关联方而认为B也不是关联方了吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-12 09:51 | 显示全部楼层
小生所应用的修约规则完全按规范的,因为我的域就是严格按规范执行的,这个,各位朋友因为不是同行,所以没法理解的。
感谢459先生,第一个问题得到解决。
还差0.00的问题和0.50两位小数的问题。
再次感谢。
好人一生平安

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
休约总体规则是有的,不同行业有不同的要求。刚才的四舍六入五留双规则不就是叫Banker's Rounding嘛。我们做审计也要用,有的时候还要缩放到千位出报告,这种rounding 的问题也很大,有的时候挤个数很麻烦,甚至得动到很多报表,还要检查钩稽关系。不过我觉得不管怎么休约还是可能出现问题的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-12 09:55 | 显示全部楼层
还是有问题,INT函数取整,如果我要保留三位小数,就无法实现了

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你把你具体的全部要求发上来,只要是休约问题我看过的资料还没有解决不了的。应用大全里也有各种休约方式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-12 09:56 | 显示全部楼层
比如说0.5505、1.5515、2.5525、3.5535
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-10-9 10:19 , Processed in 0.035445 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表