本文概述
Python提供了一个内置函数:round()会四舍五入为给定的位数并返回浮点数, 如果没有提供四舍五入的位数, 则会将数字四舍五入为最接近的整数。
语法如下:
round(number, number of digits)
round()参数:
..1) number - number to be rounded
..2) number of digits (Optional) - number of digits
up to which the given number is to be rounded.
如果缺少第二个形参,则round()函数返回:
..a)如果仅给出一个整数, 即15, 那么它将四舍五入为15。
..b)如果给出了一个十进制数,那么如果十进制值>=5,它将四舍五入到整数,如果十进制值<5,它将四舍五入到整数下限。
如果缺少第二个参数, 则下面是round()函数的python实现。
Python3
# for integers
print ( round ( 15 ))
# for floating point
print ( round ( 51.6 ))
print ( round ( 51.5 ))
print ( round ( 51.4 ))
输出如下:
15
52
52
51
当第二个形参出现时,它返回:
当第(ndigit + 1)位数字> = 5时, 四舍五入到的最后一个十进制数字将增加1, 否则保持不变。
如果存在第二个参数, 则下面是round()函数的python实现
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
错误与异常
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)类型转换。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。