一、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()
函数的舍入规则是:
- 当小数位数小于等于0时,结果与输入整数最接近。
- 当小数位数大于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()
函数相同。