Excel中一些舍入函数的对比
1.round(number, num_digits)函数、roundup(number, num_digits)函数、rounddown(number, num_digits)函数
三个函数结构相同,第一参数为源数据,第二参数为小数位数。round按指定位数四舍五入、roundup按指定位数向上取、rounddown按指定位数向下取。
数据源为负数时,按绝对值考虑舍入方向;小数位数可以为负数,负数时取相应位数的整数倍。
2.ceiling(number, significance)函数、floor(number, significance)函数
两个函数结构相同,第一参数为源数据,第二参数为倍数。ceiling对数据按倍数向上取整,floor对数据按倍数向下取整。
倍数可以为小数。倍数为正时,按实际数值向上向下摄入;倍数为负,源数据为负时,按绝对值考虑舍入方向;倍数为负,源数据为正时,返回错误。
此函数在计算涨跌停板价、临界价时较为有用。
3.mround(number, multiple)函数
第一参数为源数据,第二参数为倍数。mround按指定倍数舍入。
倍数可以为小数。源数据和倍数必须保证符号相同,按绝对值考虑舍入方向。
需要注意的是,根据微软官方文档对mround函数的说明,当倍数参数为十进制数时,恰好位于中点的数舍入方向不确定,这可能导致计算结果不符合预期,需要注意。
PS:上述错误个人猜测为浮点数在二进制中存储或舍入导致,未详细研究,待验证。
4.补充
工作表函数中的round函数与VBA函数中的round函数,因为采用了不同的舍入方法(工作表函数采用的是AwayFromZero方法,VBA函数采用的是ToEven方法),在中间值时可能造成结果不同,如工作表中round(2.5,0)=3,VBA中round(2.5,0)=2。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~