在Python中,使用内置函数round()
可以快速实现四舍五入,支持保留指定小数位数或取整,默认采用银行家舍入法(向偶数舍入),适合大多数场景。对于高精度需求,decimal
模块能避免浮点数误差,而math.ceil()
和math.floor()
可分别实现向上或向下取整。
-
round()
函数:语法为round(number, ndigits)
,ndigits
为保留的小数位数(省略则取整)。例如:python复制
round(3.14159, 2) # 返回3.14 round(2.5) # 返回2(银行家舍入)
注意浮点数精度问题(如
round(2.675, 2)
可能返回2.67
)。 -
decimal
模块:适用于财务计算等精确场景,通过quantize()
方法控制舍入规则:python复制
from decimal import Decimal, ROUND_HALF_UP Decimal('2.675').quantize(Decimal('0.01'), rounding=ROUND_HALF_UP) # 返回2.68
-
math
模块:提供ceil()
和floor()
函数,分别向上或向下取整:python复制
import math math.ceil(3.2) # 返回4 math.floor(3.7) # 返回3
-
格式化字符串:通过
f-string
或format()
间接实现四舍五入显示(不改变原值):python复制
f"{3.14159:.2f}" # 输出'3.14'
总结:根据需求选择工具——round()
满足日常需求,decimal
确保高精度,而math
模块适合特殊取整场景。注意浮点数陷阱,必要时优先使用字符串初始化Decimal
对象。