round 函数是编程和表格软件里面最常用的四舍五入函数,核心作用就是把数字按照指定保留小数位数做四舍五入处理,Excel WPS Python JS 等很多软件都自带 round 函数,但是不同软件的 round 函数底层规则有差异,最容易踩坑的就是银行家舍入,也就是逢五取偶,不是传统理解的逢五就进一,很多新手只知道基础语法,不知道这个特殊规则,计算结果和预期不一致的时候找不到原因,round 函数一般包含两个参数,第一个参数是需要处理的原始数值,第二个参数是保留的小数位数,第二个参数可以是正数零负数,负数的时候代表对整数位做四舍五入,比如保留到十位百位,日常做数据统计 金额计算 报表处理都会高频用到 round 函数。
之所以不同软件 round 函数结果不一样,是行业标准不统一,传统数学四舍五入是五就进位,但是银行家舍入规则是当尾数正好等于五的时候,看前一位数字是奇数还是偶数,奇数就进位,偶数就舍去,这种方式可以减少大量数据累加之后的累计误差,Python 默认就是银行家舍入,Excel 常规 round 是标准四舍五入,学习 round 函数的时候一定要区分当前使用的软件环境,不能直接照搬别的软件结果。
一 基础语法
通用格式 round 数值 保留位数
参数说明
第一个参数 number 要进行四舍五入的数字,必填
第二个参数 num_digits 保留小数位数,可选
num_digits 大于 0,保留对应小数位
num_digits 等于 0,保留整数
num_digits 小于 0,对整数部分四舍五入,比如负 1 就是四舍五入到十位,负 2 就是四舍五入到百位
二 Excel WPS round 函数
语法 ROUND number num_digits
示例
ROUND 3.14159 2 结果是 3.14
ROUND 3.5 0 结果是 4
ROUND 1234 -1 结果是 1230
| 写法 | 输出结果 | 说明 |
|---|---|---|
| ROUND 2.718 1 | 2.7 | 保留 1 位小数 |
| ROUND 5.5 0 | 6 | 保留整数 |
| ROUND 856 -2 | 900 | 四舍五入到百位 |
三 Python round 函数
语法 round number ndigits
重点特点 默认银行家舍入
示例
round 2.5 结果是 2
round 3.5 结果是 4
round 1.235 2 结果可能是 1.24 或者 1.23,还会受浮点数精度影响
四 使用操作步骤
1 确认当前软件或者编程语言,确认 round 函数舍入规则
2 写入原始数值作为第一个参数
3 设置第二个参数,确定想要保留的小数或者整数位数
4 运行函数,核对输出结果
5 如果是金额财务计算,发现 round 结果异常,优先检查是不是银行家舍入或者浮点数精度问题
五 常见易错点
1 混淆 Excel 和 Python 的 round 舍入规则
2 忘记第二个参数可以填负数,不会做百位十位取整
3 浮点数本身存在存储误差,部分数字明明是 x.5,实际底层存储不是精确的 0.5,导致 round 结果不符合预期
4 把 round 函数和 ROUNDUP ROUNDDOWN 搞混,ROUNDUP 是向上进位,ROUNDDOWN 是向下舍去,round 是四舍五入
【常见问题】
问题 1 round 函数第二个参数填负数是什么效果
回答 1 round 函数第二个参数填负数的时候,round 函数不再保留小数,而是对整数位做四舍五入,比如 round 函数参数填负 1 就是四舍五入到十位,round 函数参数填负 2 就是四舍五入到百位。
问题 2 Python 的 round 函数和 Excel round 函数规则一样吗
回答 1 Python 的 round 函数默认是银行家舍入,Excel 的 round 函数是常规四舍五入,Python 的 round 函数和 Excel round 函数在尾数正好等于五的时候,计算结果会不一样。
问题 3 round 函数可以用来向上取整吗
回答 1 round 函数本身是四舍五入,不能直接实现向上取整,如果需要向上取整不能使用 round 函数,要使用专门的向上进位函数,round 函数只负责按规则四舍五入。
【免责申明】
本文属于函数科普,不同版本软件和编程语言的 round 函数实现细节可能更新,浮点数精度属于计算机底层特性,财务高精度场景建议使用专用高精度计算库,内容仅供学习参考。


