一、round()函数
Python中最常用的舍弃小数位函数是round()函数,它可以对数字进行四舍五入,并返回一个整数或浮点数。
num1 = 3.14159 num2 = 2.71828 print(round(num1)) # 3 print(round(num2, 2)) # 2.72
在上面的例子中,round()函数对num1进行四舍五入,返回整数3。对num2保留两位小数,返回浮点数2.72。
需要注意的是,round()函数的舍入规则是:
1. 当小数位数小于等于0时,结果与输入整数最接近。
2. 当小数位数大于0时,结果为输入数字保留指定位数的小数, 如果最后一位小数是5,则向偶数位舍入。
二、math模块的ceil()和floor()函数
math模块的ceil()和floor()函数可以对数字进行向上取整和向下取整。
import math num1 = 3.14159 num2 = 2.71828 print(math.ceil(num1)) # 4 print(math.floor(num2)) # 2
在上面的例子中,math.ceil()函数对num1进行向上取整,返回整数4。math.floor()函数对num2进行向下取整,返回整数2。
三、decimal模块
虽然以上函数已经可以满足大部分情况下的需求,但在对精度要求较高的场景中,需要使用decimal模块。
decimal模块提供了Decimal类,可以精确地控制数字的小数位数。
import decimal num1 = decimal.Decimal('3.14159') num2 = decimal.Decimal('2.71828') print(num1.quantize(decimal.Decimal('0.00'))) # 3.14 print(num2.quantize(decimal.Decimal('0.0'))) # 2.7
在上面的例子中,Decimal类接收一个字符串形式的数字作为参数,然后再通过quantize()方法控制小数位数。
四、numpy模块
numpy模块提供了一个around()函数,可以对数字进行四舍五入,并控制小数位数。
import numpy as np num1 = 3.14159 num2 = 2.71828 print(np.around(num1, 2)) # 3.14 print(np.around(num2, decimals=1)) # 2.7
在上面的例子中,np.around()函数对num1保留两位小数,返回3.14。对num2保留一位小数,返回2.7。
需要注意的是,np.around()函数的舍入规则与round()函数相同。