Python中的round()函数
Python round()函数从十进制值到最接近 10 倍数的浮点数。
这 int 值最接近 10 的幂减去 ndigits 的倍数,其中 ndigits 是小数点后的精度。如果两个倍数同样接近,则向偶数选择舍入。
Python round() 语法:
round(number, number of digits)
Python round() 参数:
- number : number to be rounded
- number of digits (Optional) : number of digits up to which the given number is to be rounded.
如果缺少第二个参数,则 round()函数返回:
- 如果只给出一个整数,例如 15,那么它本身将四舍五入为 15。
- 如果给出一个十进制数,那么它会四舍五入到最接近的 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 ()函数在求两个数字的平均值时表现出不寻常的行为。