Python入门系列21-数学相关模块(math/decimal)
  19qMgiCiiRfc 2023年11月02日 31 0

一、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小数相加可能由于科学精度问题计算出的结果不正确。

Python入门系列21-数学相关模块(math/decimal)_math

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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  1BnnW8rtw7M9   2023年12月22日   120   0   0 算法i++i++mathMath算法
19qMgiCiiRfc