一、math模块
math库是Python提供的内置数学函数库,支持整数和浮点数运算。
常用函数和属性如下图所示:
函数/属性 | 说明 |
math.pi | 圆周率 |
math.inf | 正无穷大 |
math.ceil(浮点数) | 向上取整 |
math.floor(浮点数) | 向下取整 |
round(浮点数) | 四舍五入操作 |
abs(数值) | 获取数值的绝对值 |
math.fmod(x,y) | 返回x/y的余数 |
math.pow(底数,幂) | 返回一个数值的N次方 |
math.sqrt(数值) | 开平方 |
fsum(序列) | 返回序列中所有元素的和,返回值:浮点数 |
sum(序列) | 将一个序列的数值进行相加求和 |
math.trunc(浮点数) | 返回浮点数的整数部分 |
math.factorial(x) | 返回x的阶乘 |
代码实例如下:
import math
# 圆周率
print(math.pi)
# 向上取整
print(math.ceil(3.2))
# 向下取整
print(math.floor(3.2))
# 四舍五入操作
print(round(3.6))
# 获取数值的绝对值
print(abs(-3.2))
# 返回x/y的余数
print(math.fmod(3, 2))
# 返回一个数值的N次方
print(math.pow(2, 3))
# 开平方
print(math.sqrt(4))
# 将一个序列的数值进行相加求和
print(sum([1, 2, 3, 4]))
# 返回浮点数的整数部分
print(math.trunc(3.4))
# 返回x的阶乘
print(math.factorial(3))
输出:
3.141592653589793
4
3
4
3.2
1.0
8.0
2.0
10
3
6
二、decimal模块
decimal 模块提供了一个Decimal数据类型用于浮点数计算。相比内置的二进制浮点数实现float这个类型有助于金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。高精度使Decimal可以执行二进制浮点数无法进行的模运算和等值测试。
1.为什么使用decimal?因为python小数相加可能由于科学精度问题计算出的结果不正确。
2.使用decimal。设置精度decimal.getcontext().prec=num (num表示有效数值个数)
import decimal
# 设置精度为3位数值
decimal.getcontext().prec = 3
print(decimal.Decimal(2.01) + decimal.Decimal(3.01))
# 设置精度为2位数值
decimal.getcontext().prec = 2
print(decimal.Decimal(2.01) + decimal.Decimal(3.01))
输出:
5.02
5.0
设置小数位数:quantize()
import decimal
# 设置3位小数
print(decimal.Decimal(1.23456789).quantize(decimal.Decimal('0.000')))
# 设置2位小数
print(decimal.Decimal(1.23456789).quantize(decimal.Decimal('0.00')))
输出:
1.235
1.23
标签:Python,decimal,数值,浮点数,print,Decimal,math
From: https://blog.51cto.com/u_13312531/7979307