decimal是python的标准库之一,我们通常用它来进行浮点数的运算和比较。

为什么需要使用decimal

因为使用浮点数计算比较会有误差,请看下面的例子

a1 = 1.01
b1 = 1.02if a1+b1 == 2.03:print('ok')
else:print('no')
# 有精度的误差
print(a1+b1)

结果:

no
2.0300000000000002

decimal实现

我们建议浮点数的运算和比较采用Decimal来实现

from decimal import Decimal
a2 = Decimal('1.01')
b2 = Decimal('1.02')if a2+b2 == Decimal('2.03'):print('ok')
else:print('no')
print(a2+b2)
print(type(a2+b2))

结果:

ok
2.03
<class 'decimal.Decimal'>

注意事项

Decimal初始化值必须是数字字符串或者是整数,浮点数的要转成字符串后才传入

print(Decimal('1.01'))
print(Decimal(1.01))

结果:

1.01
1.0100000000000000088817841970012523233890533447265625

python之decimal相关推荐

  1. python decimal_实例详解Python模块decimal

    Python提供了decimal模块用于十进制数学计算,它具有以下特点: 1.提供十进制数据类型,并且存储为十进制数序列: 2.有界精度:用于存储数字的位数是固定的,可以通过decimal.getco ...

  2. Python模块-decimal

    Python提供了decimal模块用于十进制数学计算,它具有以下特点: 提供十进制数据类型,并且存储为十进制数序列: 有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontex ...

  3. python中decimal用法详解

    decimal是python内置库. decimal模块支持快速正确四舍五入的十进制浮点运算. 示例代码: import decimala = decimal.Decimal(123) print(a ...

  4. 【python】Decimal的使用

    1.说明 python原生数据类型在进行浮点运算时,可能会由于精度问题导致计算结果不准确,尤其是浮点数和较大的数据进行运算,所以如果对数据精度有要求,比如说金额,我们就需要使用decimal这个库 2 ...

  5. python的decimal

    Python自带的decimal模块用于十进制数学计算,它是在浮点类型的基础上设计的,可以非常精确地在计算机中存储和计算,精度优于floating point,因为浮点数并不能精确的表示十进制数,因为 ...

  6. Python TypeError: Object of type ‘Decimal‘ is not JSON serializable 类型错误 无法json

    场景:今天使用python 查询了一个MYSQL 数据库的信息  数据库的字段为decimal 类型 我将结果进行json.dumps 报错 TypeError: Object of type 'De ...

  7. python decimal是什么类型_decimal 详解

    1.为什么要有decimal,解决了什么问题,为什么不用float 因为float会丢失精度.原因在于二进制要想表示十进制的数就会存在误差,比如用二进制来表示0.1,根本无法精确表示,但是这不是bug ...

  8. 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...

    作者:Gigi Sayfan 翻译:吴振东 校对:吴金笛 本文约3300字,建议阅读10分钟. 本文将介绍多种Python对象分别所占用的内存,并解释所选择的测量方法和函数,为节省内存提供建议. Py ...

  9. python中math isnan,在python中指定一个变量NaN,不用numpy

    是 – 使用float('nan')或float('NaN').从Python 3.5开始,你也可以使用 math.nan. >>> a = float('nan') >> ...

最新文章

  1. 爬虫正则表达式遇到的困难
  2. cs精英游戏python代码_python面向对象-cs游戏示例
  3. 原生js双向数据绑定
  4. php ipa 版本定制,class.php
  5. 译:用iPhone SDK来画饼图(Pie Charts)报表
  6. 【优化预测】基于matlab蝙蝠算法优化SVM预测【含Matlab源码 141期】
  7. iir数字滤波器设计及matlab实现,终稿毕业论文:IIR数字滤波器设计及其MATLAB实现.docOK版(样例3)...
  8. 组态王中Modbus字节顺序的调整
  9. 【Matlab MTSP】灰狼算法求解多旅行商问题(同始终点)【含源码 1564期】
  10. 利用css实现div背景颜色动态渐变
  11. php网页游戏开发代码,PHP游戏编程25个脚本代码
  12. 5首2021一些流行好听歌曲的吉他和弦
  13. Excel VBA 实现Ribbon自定义功能区
  14. 模具设计分型的10大原则
  15. js--动态生成表格
  16. Nestjs中的守卫
  17. 用EXCEL分析《亚马逊智能产品评论》
  18. uc浏览器视频缓存合并工具
  19. docker创建容器共享目录
  20. Fundamentals of Computer Graphics third/Fourth Edition

热门文章

  1. 【管理心得之七】什么样的团队成员,才是组织需要的?
  2. MySQL深度分页的问题及优化方案:千万级数据量如何快速分页
  3. XILINX K7 DDR3引脚验证总结
  4. 帝国备份王mysql导入_使用帝国备份王EmpireBak备份与恢复网站的MySQL数据库
  5. Unity制作第三人称射击游戏-成为创新游戏开发者学习教程
  6. 浅析三种近场通信技术
  7. 第1 章电子数据取证概述
  8. Android - Broadcasts overview(不完整)
  9. 谁的青春不似梦,谁的梦里不青春
  10. TOMCAT/JS/CSS/JavaWeb/浏览器老是加载缓存/谷歌浏览器/微软浏览器/刷新键都按烂了/无法加载样式解决办法之一