首页 > 编程语言 >Python入门系列21-数学相关模块(math/decimal)

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

时间:2023-10-22 23:00:54浏览次数:35  
标签:Python decimal 数值 浮点数 print Decimal math

一、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

标签:Python,decimal,数值,浮点数,print,Decimal,math
From: https://blog.51cto.com/u_13312531/7979307

相关文章

  • python的Faker使用
    importjsonfromfakerimportFakerfaker=Faker(locale='zh_CN')result={"name":faker.name(),#生成名字,每次运行生成不同的名字"contact":faker.address(),#生成地址"age":faker.random_int(18,40),#生成数字,年龄范围"gender......
  • python-使用matplotlib画折线图
    1importos2fromconfigparserimportConfigParser3importmatplotlib.pyplotasplt45plt.rcParams['font.sans-serif']=['SimHei']6plt.rcParams['axes.unicode_minus']=False78configFile='config.ini......
  • 一键解决[notice] A new release of pip available: 22.2 -> 22.2.2 [notice] To updat
    [notice]Anewreleaseofpipavailable:22.2->22.2.2[notice]Toupdate,run:python.exe-mpipinstall--upgradepip文章目录问题描述解决思路解决方法问题描述[notice]Anewreleaseofpipavailable:22.2->22.2.2[notice]Toupdate,run:python.exe-mpip......
  • 代码训练营第十一天(Python)| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150
    20.有效的括号思路:分析出三种情况,画图模拟。写代码容易写错。classSolution:defisValid(self,s:str)->bool:a_stack=list()foriins:ifi=='(':a_stack.append(')')elifi=='{':......
  • Python学习笔记(一)
    Python中一切皆对象,函数和类也是对象,属于Python的一等公民。对象可以赋值给一个变量对象可以添加到集合对象中对象可以作为参数传递给函数对象可以当做函数的返回值对象的三个特征:1、身份(id());2、类型;3、值type->int>1type>class->objobject是最顶层基类type也是一个......
  • Python Web之Django
    一、环境需求1、OS:Windows102、IDE:PyCharm2019.23、Interpreter:Python3.7 二、项目搭建1、构建Django工程,打开PyCharm,点击【File】==》【NewProject...】==》【Django】。 2、项目工程保存路径、工程名称、解释器选择,点击【Create】创建项目工程,如下图所示:  ......
  • python系列教程216——何时使用列表解析
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • 小白学Python - 使用Python的文件共享应用程序
    使用Python的文件共享应用程序计算机网络 是一个重要的主题,要理解这些概念,需要实际应用这些概念。在这篇特别的文章中,我们将了解如何使用Python制作一个简单的文件共享  Web服务器是理解URL(网址)和HTTP(用于查看网页的协议)的软件。Python有几个包,它们是模块的集合。它有几个内......
  • 小白学Python - 使用 Python 的 OpenCV 绘制矩形并提取对象
    使用Python的OpenCV绘制矩形并提取对象OpenCV是一个开源计算机视觉和机器学习软件库。可以在它的帮助下完成各种图像处理操作,例如操纵图像和应用大量滤镜。它广泛用于对象检测、人脸检测和其他图像处理任务。让我们看看如何使用OpenCV在图像上绘制矩形并提取对象。编写代码#......
  • 小白学Python - 在 Python 中使用 TensorFlow 进行面部口罩检测
    在Python中使用TensorFlow进行面部口罩检测我们将使用此Python脚本来训练口罩检测器并查看结果。鉴于训练有素的COVID-19口罩检测器,我们将继续实现另外两个Python脚本,用于:检测图像中的COVID-19口罩检测实时视频流中的口罩口罩检测系统流程图 为了训练自定义口罩检测器......