Python 的内置函数 round() 用于对浮点数进行四舍五入操作,返回最接近的整数或指定小数位数的浮点数。这个函数在数值处理、金融计算、数据科学等领域有广泛应用。
基本语法
round(number, ndigits)
number:需要四舍五入的数字(整数或浮点数)ndigits(可选):保留的小数位数,默认为0(即返回整数)
功能特点
-
当
ndigits省略或为0时,返回最接近的整数round(3.14) # 返回 3 round(3.6) # 返回 4 -
可以指定保留的小数位数
round(3.14159, 2) # 返回 3.14 round(1.2345, 3) # 返回 1.234 -
对于刚好处于中间值的情况(如0.5),Python 3采用"银行家舍入法"(四舍六入五成双):
- 当舍入位后一位是5且后面没有其他数字时
- 舍入位前一位是偶数则舍去,奇数则进位
round(2.5) # 返回 2(2是偶数) round(3.5) # 返回 4(3是奇数) round(4.5) # 返回 4(4是偶数)
注意事项
-
与格式化输出不同,
round()返回的是数值对象而非字符串type(round(3.1415, 2)) # <class 'float'> -
负数同样适用舍入规则
round(-1.5) # 返回 -2 round(-2.5) # 返回 -2 -
对于极大或极小的数,可能会返回科学计数法表示
round(1.2345e20, -18) # 1.23e+20
实际应用场景
-
金融计算(金额四舍五入到分)
amount = 12.3456 rounded = round(amount, 2) # 12.35 -
数据可视化(简化坐标轴刻度标签)
x = [i*0.1234 for i in range(10)] labels = [round(num, 2) for num in x] -
成绩计算(四舍五入到整数分)
scores = [87.4, 92.6, 78.9] final_scores = [round(s) for s in scores] # [87, 93, 79]
替代方案
当需要更精确的舍入控制时,可以考虑:
math.floor():向下取整math.ceil():向上取整decimal模块:提供更精确的十进制运算- 字符串格式化:
format()或f-string控制显示格式