Python decimal 模块

  • Python中的浮点数默认精度是15位。

  • Decimal对象可以表示任意精度的浮点数。

getcontext函数

  • 用于获取当前的context环境,可以设置精度、舍入模式等参数。

#在context中设置小数的精度
decimal.getcontext().prec = 100

  • 通过字符串初始化Decimal类型的变量

  • 因为通过浮点数初始化Decimal类型的变量会导致精度的丢失

# 浮点数的初始化
a = decimal.Decimal('3.14159265')

setcontext函数

  • decimal.ROUND_HALF_UP 对浮点数四舍五入

import decimal
x = decimal.Decimal('1.23456789')
context = decimal.Context(prec=4,rounding=decimal.ROUND_HALF_UP)
decimal.setcontext(context)
y1 = x
y2 = x*2
print("y1",y1)
print("y2",y2)>>>y1 1.23456789
>>>y2 2.469

localcontext函数

  • 用于创建一个新的context环境,可以在该环境中设置精度、舍入模式等参数,不会影响全局的context环境。

import decimal
x = decimal.Decimal('1.23456789')
context0 = decimal.Context(prec=9,rounding=decimal.ROUND_HALF_UP)
decimal.setcontext(context0)
y1 = x * 2
print("y1",y1)with decimal.localcontext() as context:context.prec = 4context.rounding = decimal.ROUND_HALF_UPy2 = x * 2print("y2",y2)>>>y1 2.46913578
>>>y2 2.469
>>>
>>>

Python decimal模块的使用相关推荐

  1. 用decimal模块增加python的浮点数精度

    浮点数python默认是17位精度,也就是小数点后16位(16位以后的全部四舍五入了),虽然有16位,但是这个精度越往后越不准. 如果有特殊需求,需要更多的精度,可以用decimal模块,通过更改其里 ...

  2. Python浮点数精度问题(decimal模块)

    很多友友们在使用python编写程序时肯定都遇到过一个"阻拦索",那就是python的浮点数减法精度问题,如图 当时我也很吃惊,后来我问过比我资历高点的程序员得知,python的浮 ...

  3. python decimal用法_Python decimal模块使用方法详解

    decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为 ...

  4. python中安装decimal模块_python decimal和fractions模块

    1.简介 默认,浮点数学缺乏精确性 decimal 模块提供了一个Decimal 数据类型用于浮点数计算.相比内置的二进制浮点数实现float这个类型有助于金融应用和其它需要精确十进制表达的场合,控制 ...

  5. python decimal函数_Python之decimal模块的使用

    decimal模块的作用 Decimal模块的实例可以准确地表示任何数,对其上或其下取整,还可以限制有效数字个数. 1.Decimal创建的使用 importdecimal fmt= '{0:< ...

  6. python decimal_Python中的decimal模块执行精确的浮点运算

    简介 如果你从事科学或工程领域的大多数计算,那么使用普通的浮点类型是比较普遍的做法.因为在真实世界中很少会要求精确到17位精度的普通浮点数.因此,计算过程中的那么一点点的误差是被允许的.其次,原生的二 ...

  7. python decimal 转 float_python教程之二python数学运算

    存储数据变量 #两个变量交换值,通过第三个参数实现 print('两个变量交换值,通过第三个参数实现'); #第一种方法是通过第三个参数实现 x=5;#变量赋值 y=11; #变量赋值 print(' ...

  8. [转]python各模块的学习

    [-] 01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 ...

  9. python re 模块及正则表达式调用认识 (2)

    接<python re 模块及正则表达式调用认识> \number 匹配与前面组编号相匹配的文本.从1开始编号到99. For example, (.+) \1 matches 'thet ...

最新文章

  1. php glod,基于PHP的黄金价格示例代码-六派数据
  2. 事务未提交 别人能读取到吗_Mysql 事务-面试笔记
  3. 物理常量/真空电容率/引力常量/真空磁导率/斯特潘-玻尔兹曼常量
  4. iFK蓝牙耳机的EQ调节
  5. Oracle8.1.7 报错01033,win10系统下oracle数据库报错ORA-01033如何解决
  6. 无损音乐下载网站推荐
  7. swift生成二维码
  8. 二、页面构成与色彩搭配
  9. 【Unity】关于GPU异步回读Android兼容性问题
  10. 20145212 罗天晨 信息搜集与漏洞扫描
  11. 如何优化网站关键词?
  12. 从postscript文件到pdf并裁减转动
  13. 安信可内测离线语音模块VB-01与ESP-C3-12F通信
  14. ‬‬假设平均绩点计算方法如下:(课程学分1*绩点+课程学分2*绩点+课程学分n*绩点)/(课程学分1+课程学分2+课程学分n)。用户循环输入五分制成绩和课程学分,输入‘-1’时结束输入,计算学生平均绩
  15. 信息化时代,你为什么还在坚持读纸质书
  16. Google 安装Sci-Hub搜索插件异常解决
  17. Java——Lambda表达式
  18. 截取日期,并和现在的时间对比
  19. 什么是ShellShock攻击?
  20. 基于Linux系统实现西门子PLC的数据采集

热门文章

  1. 新媒体管理师手把手教你描绘用户画像
  2. 9ms 静默活体检测,小视开源工业级品质算法
  3. xiuno -- 网站搬家
  4. vizard--消消乐2.0
  5. poj1013 假硬币
  6. 开发者,你知道IaaS,PaaS,SaaS是什么吗?
  7. Kubernetes_部署_k8s的四种部署策略(滚动更新、重新创建、金丝雀部署、蓝绿部署)
  8. SuperMap iObjects for C++ 入门详解(VS + Qt)
  9. 2019先进制造业大会起航啦!
  10. 解决vue表格导出时数据重复