您的位置:

Python中的舍弃小数位函数

一、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()函数相同。