在Python编程中保留两位小数,主要有以下四种方法,根据需求选择合适的方式:
一、使用 round()
函数(推荐)
-
功能 :四舍五入保留两位小数,适用于大多数场景。
-
示例 :
number = 3.14159 rounded_number = round(number, 2) print(rounded_number) # 输出: 3.14
-
注意事项 :采用“四舍六入五成双”规则,可能导致偶数舍入异常(如2.35舍入为2.4)。
二、使用字符串格式化(推荐)
-
方法1 :旧式百分号格式化
a = 12.345 print("%.2f" % a) # 输出: 12.35
-
方法2 :
str.format()
方法print("{:.2f}".format(a)) # 输出: 12.35
-
方法3 :f-string(Python 3.6+)
print(f"{a:.2f}") # 输出: 12.35
-
优势 :灵活且支持多种格式化需求,避免浮点数精度问题。
三、使用 Decimal
模块(推荐)
-
功能 :高精度运算,避免浮点数误差,支持自定义舍入规则。
-
示例 :
from decimal import Decimal a = 12.345 rounded_number = Decimal(a).quantize(Decimal("0.00")) print(rounded_number) # 输出: 12.35
-
适用场景 :金融计算、科学计算等对精度要求高的场景。
四、使用序列切片(仅保留两位小数,不四舍五入)
-
方法 :通过字符串处理获取小数点后两位。
-
示例 :
a = 12.345 formatted_str = str(a).split('.') + '.' + str(a).split('.')[:2] print(formatted_str)
-
注意 :仅截断,不进行四舍五入,可能不符合需求。
总结 :优先使用 round()
或格式化字符串(推荐),若需高精度则使用 Decimal
模块。避免直接操作浮点数精度,防止舍入误差。