ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[改进建议] 四舍五入中四舍六入五成双的建议

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-24 09:42 | 显示全部楼层 |阅读模式
四舍五入的这个很好用,提个建议:
四舍六入五成双可不可以做成一个函数?
比如我们在实际中用的,大于5的小数需要保留小数后一位,小于5的小数需要保留到小数后两位,小于0.1的小数需要保留到小数后三位。
举例子:
5.45=5.4
5.55=5.6
4.985=4.98
4.255=4.26
0.0125=0.012
0.0135=0.014

TA的精华主题

TA的得分主题

发表于 2019-12-24 10:27 | 显示全部楼层
本帖最后由 鄂龙蒙 于 2019-12-24 10:28 编辑

楼主的这种情况下的规则没说清楚吧如:
0.0125=0.012
0.0135=0.014

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-24 14:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
鄂龙蒙 发表于 2019-12-24 10:27
楼主的这种情况下的规则没说清楚吧如:
0.0125=0.012
0.0135=0.014

小于0.1的小数需要保留到小数后三位。

TA的精华主题

TA的得分主题

发表于 2019-12-24 16:31 | 显示全部楼层
本帖最后由 hcm19522 于 2019-12-25 09:39 编辑

C2:C15=INT((B2*10^IFERROR(LEN(B2)-FIND(".",B2),)+5-(MOD(B2*10^IFERROR(LEN(B2)-FIND(".",B2),)+15,20)=0))/10)*10^-(IFERROR(LEN(B2)-FIND(".",B2),)-1)

E2:E15=IFERROR(LEN(B2)-FIND(".",B2),)

F2:F15=INT((B2*10^E2+5-(RIGHT(B2*10^E2)-5=0)*(MOD(LEFT(RIGHT(B2*10^E2,2)),2)=0))/10)*10^-(E2-1)
6426.png

TA的精华主题

TA的得分主题

发表于 2019-12-24 19:26 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
0.0125=0.012为什么没有四舍五入?

TA的精华主题

TA的得分主题

发表于 2019-12-24 19:40 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=if(A1<0.1,round(A1,3),if(A1<5,round(A1,2),round(A1,1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-7 17:18 | 显示全部楼层
Eva1015 发表于 2019-12-24 19:26
0.0125=0.012为什么没有四舍五入?

看5前面的那个数,如果是奇数,就进,偶数就舍

TA的精华主题

TA的得分主题

发表于 2020-2-22 22:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 奔跑的蜗牛丶明 于 2020-2-22 22:27 编辑

四舍六入五留双不是你这样定义的。五留双应该是:①当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去。数字“0”在此时应被视为偶数。②当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位。&#8194;

TA的精华主题

TA的得分主题

发表于 2020-3-17 15:02 | 显示全部楼层

A2是你需要的数字,B2是要保留的数位。
A3是正常四舍五入的值。(ROUND(A2,B2))
A4是截取保留数位的值。(TRUNC(A2,B2))   B4是A4最后一位的值。 C4是把B4转换为数值   
A5是截取数位+1的值。(TRUNC(A2,B2+1)) B5是A5最后一位的值。 C5是把B5转换为数值
D4是判断C4是奇数的话就是A3反之A4(ISODD(C4),A3,A4)
E2是看A2和A5是否相等、B5是否等于5,如果都相等的话就是D4,否则是A39IF(AND(A2=A5,C5=5),D4,A3)).
这是自己瞎编的,不足的地方请大家指出来在帮忙改改,看有没有更好的方法。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-28 02:13 , Processed in 0.034515 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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