跳到主要内容

Python round() 函数

round() 函数返回四舍五入到指定小数位数的浮点数。

示例

number = 13.46

# 将 13.46 四舍五入到最近的整数
rounded_number = round(number)
print(rounded_number)

# 输出: 13

round() 语法

round() 函数的语法是:

round(number, ndigits)

round() 参数

round() 函数接受两个参数:

  • number - 要四舍五入的数字
  • ndigits(可选) - 四舍五入的小数位数;默认为 0

round() 返回值

round() 函数返回:

  • 如果未提供 ndigits,则返回给定数字最接近的整数
  • 如果提供了 ndigits,则返回四舍五入到 ndigits 位小数的数字

示例 1:Python 中的 round() 如何工作?

# 对于整数
print(round(10))

# 对于浮点数
print(round(10.7))

# 偶数选择
print(round(5.5))

输出

10
11
6

示例 2:将数字四舍五入到给定的小数位数

print(round(2.665, 2))
print(round(2.675, 2))

输出

2.67
2.67

注意round() 对浮点数的行为可能会让人感到意外。请注意 round(2.675, 2) 结果为 2.67 而不是预期的 2.68。这不是一个错误:这是由于大多数十进制分数无法精确表示为浮点数的事实导致的。

当十进制 2.675 被转换为二进制浮点数时,它再次被替换为二进制近似值,其精确值为:

2.67499999999999982236431605997495353221893310546875

因此,它被四舍五入为 2.67。

如果你处于需要这种精确度的情况下,考虑使用 decimal 模块,它专为浮点运算设计:

from decimal import Decimal

# 普通浮点数
num = 2.675
print(round(num, 2))

# 使用 decimal.Decimal(传递浮点数为字符串以保持精度)
num = Decimal('2.675')
print(round(num, 2))

输出

2.67
2.68