目录
1、math模块
1.1 数学常数
1.2 常用函数
2、 decimal模块
2.1 什么时候使用decimal
2.2 使用decimal
math库是Python提供的内置数学类函数,因为复数类型常用于科学计算,一般计算不常用,math库不支持复数类型,仅支持整数和浮点数
math.pi 圆周率
math.e 自然常数e
math.inf 正无穷大,负无穷大为-math.inf
math.nan 非浮点数标记,NaN
math.cell(浮点数) # 向上取整
math.floor(浮点数) # 向下取整
round(浮点数) # 四舍五入
math.fabs(数值) # 绝对值 返回浮点数
abs(数值) # 绝对值 返回整数、浮点数
math.fmod(x,y) # x/y的余数;返回值:浮点数
math.pow(底数,幂) # 计算一个数值的N次方,返回值:浮点类型
math.sqrt(数值) # 开平方 返回浮点数
fsum(序列) # 返回序列中所有元素和 返回值:浮点数
sum(序列) # 将一个序列的数值进行相加求和 返回值:数值类型(根据序列中数值类型变化)
math.modf(数值) # 将一个浮点数拆成小数和整数部分的元组 返回值:元组
math.trunc(数值) # 返回浮点数的整数部分,返回值:整数
math.copysign(值1,值2) # 将第二个数的正负值复制给第一个数,返回值:浮点数
math.factorial(x) # 返回x的阶乘,如果x不是整数或为负数将引发ValueError:返回值:整数
math.gcd(x,y) # 返回整数x和y的最大公约数,返回值:整数
print(math.e)
print(math.pi)
print(math.inf)
print(math.nan)
print(math.ceil(12.13))
print(math.floor(12.13))
print(round(13.14))
print(math.fabs(-1))
print(math.fabs(2))
print(abs(-1))
print(math.fmod(6, 2))
print(math.pow(2, 3))
print(math.sqrt(8))
print(math.fsum((1, 2, 3, 4, 5, 7, 1)))
print(sum(range(101)))
print(math.modf(12.34))
print(math.trunc(11.2))
print(math.copysign(1, -1))
print(math.factorial(4))
print(math.gcd(2, 7))
decimal模块提供了一个Decimal数据类型用于浮点数计算,相比于内置的二进制浮点数实现float这个类型有助于金融应用和其他需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场景。Decimal重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。高精度Decimal可以执行二进制浮点数无法进行的模运算和等值运算。
python中小数相加会计算出结果不对,那就是由于科学计数精度问题
print(2.02 + 3.01)
设置精度:decimal.getcontext().prec = num # num为有效数字个数
decimal.getcontext().prec = 4
print(decimal.Decimal(2.02) + decimal.Decimal(3.01))
设置小数位数:quantize()
print(decimal.Decimal(3.1415926).quantize(decimal.Decimal("0.000")))