📜  Python中的round()函数

📅  最后修改于: 2022-05-13 01:55:17.673000             🧑  作者: Mango

Python中的round()函数

Python round()函数从十进制值到最接近 10 倍数的浮点数

int 值最接近 10 的幂减去 ndigits 的倍数,其中 ndigits 是小数点后的精度。如果两个倍数同样接近,则向偶数选择舍入。

Python round() 语法:

Python round() 参数:

如果缺少第二个参数,则 round()函数返回

  1. 如果只给出一个整数,例如 15,那么它本身将四舍五入为 15。
  2. 如果给出一个十进制数,那么它会四舍五入到最接近的 10 的幂减去 ndigits 的倍数

Python round() 示例:

示例 1:如果缺少第二个参数,则Python round()函数

Python3
# for integers
print(round(15))
 
# for floating point
print(round(51.6))
print(round(51.5))
print(round(51.4))


Python3
# when the (ndigit+1)th digit is =5
print(round(2.665, 2))
 
# when the (ndigit+1)th digit is >=5
print(round(2.676, 2))
 
# when the (ndigit+1)th digit is <5
print(round(2.673, 2))


Python3
print(round(12))
print(round(12.7))


Python3
print(round(12))
print(round(12.1))
print(round(12.4))
print(round(12.5))


Python3
print(round("a", 2))


Python3
# practical application
b = 1/3
print(b)
print(round(b, 2))


输出:

15
52
52
51

当第二个参数存在时,它返回:

当第 (ndigit+1) 位 >=5 时,四舍五入的最后一位小数加 1,否则保持不变。

示例 2:如果存在第二个参数,则Python round()函数

Python3

# when the (ndigit+1)th digit is =5
print(round(2.665, 2))
 
# when the (ndigit+1)th digit is >=5
print(round(2.676, 2))
 
# when the (ndigit+1)th digit is <5
print(round(2.673, 2))

输出:

2.67
2.68
2.67

示例 3: Python round() 向上

Python3

print(round(12))
print(round(12.7))

输出:

12
13

示例 4: Python round() 向下

Python3

print(round(12))
print(round(12.1))
print(round(12.4))
print(round(12.5))

输出:

12
12
12
12

错误和异常

TypeError:如果参数中存在数字以外的任何内容,则会引发此错误。

Python3

print(round("a", 2))

输出:

Runtime Errors:
Traceback (most recent call last):
  File "/home/ccdcfc451ab046030492e0e758d42461.py", line 1, in 
    print(round("a", 2))  
TypeError: type str doesn't define __round__ method

实际应用:

函数舍入的常见用途之一是处理分数和小数之间的不匹配。

舍入数字的一种用途是在将 1/3 转换为小数时缩短小数点右侧的所有三位。大多数情况下,当您需要使用十进制的 1/3 时,您将使用四舍五入的数字 0.33 或 0.333。事实上,当小数点没有完全等价的小数时,您通常只使用小数点右侧的两位或三位数字。你将如何以十进制显示 1/6?记得围观!

Python3

# practical application
b = 1/3
print(b)
print(round(b, 2))

输出:

0.3333333333333333
0.33

注意:在Python中,如果我们将数字四舍五入到 floor 或 ceil 而不给出第二个参数,例如它将返回 15.0 而在Python 3 中它返回 15,所以为了避免这种情况,我们可以在Python中使用 (int) 类型转换。还需要注意的是,round ()函数在求两个数字的平均值时表现出不寻常的行为。