一、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
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: AI for Science交流会来了!科学计算前沿邀您共同探讨
随着深度学习不断驱动技术创新,人工智能科学计算迈向高质量发展道路。百度飞桨作为科学计算的坚定支持者,计划于7月13日举办飞桨科学计算线下交流会。本次交流会以百度飞桨深度学习框架为基座,广泛联动人工智能科学计算领域头部专家学者、高等院校、科研机构和开发者,搭建科…