1.简介

默认,浮点数学缺乏精确性

decimal 模块提供了一个 Decimal 数据类型用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试。

2.使用

>>> from decimal import Decimal

>>> Decimal('0.1') / Decimal('0.3')

Decimal('0.3333333333333333333333333333')

>>> from decimal import getcontext

>>> getcontext().prec = 4 #设置全局精度

>>> Decimal('0.1') / Decimal('0.3')

Decimal('0.3333')

fractions

>>> from fractions import Fraction

>>> Fraction(16, -10)  #分子分母

Fraction(-8, 5)

>>> Fraction(123)   #分子

Fraction(123, 1)

>>> Fraction('3/7')   #字符串分数

Fraction(3, 7)

>>> Fraction('-.125')  #字符串浮点数

Fraction(-1, 8)

>>> Fraction(2.25)  #浮点数

Fraction(9, 4)

>>> from decimal import Decimal

>>> Fraction(Decimal('1.1')) #Decimal

Fraction(11, 10)

>>> from fractions import Fraction

>>> a = Fraction(1,2)

>>> a

Fraction(1, 2)

>>> b = Fraction('1/3')

>>> b

Fraction(1, 3)

>>> a + b

Fraction(5, 6)

>>> a - b

Fraction(1, 6)

python decimal和fractions模块的更多相关文章

  1. 1.3 fractions模块

    数学世界中,浮点数还可以用分数形式展示,不可约简的分数形式往往更简洁直观.  问题来了,Python中如何输出不可约简的分数形式呢?  答案:用Fraction类来实现.这个类属于标准库的fracti ...

  2. python基础31[常用模块介绍]

    python基础31[常用模块介绍]   python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...

  3. Python学习笔记-常用模块

    1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...

  4. Day5 - Python基础5 常用模块学习

    Python 之路 Day5 - 常用模块学习   本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...

  5. python 学习day5(模块)

    一.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能 ...

  6. Python基础5-常用模块

    本节大纲 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib subproc ...

  7. Python基础5 常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  8. python附录-builtins.py模块str类源码(含str官方文档链接)

    python附录-builtins.py模块str类源码 str官方文档链接:https://docs.python.org/3/library/stdtypes.html#text-sequence ...

  9. python 多线程,tthread模块比较底层,而threading模块是对thread做了一些包装,multithreading

    Python多线程详解 2016/05/10 · 基础知识 · 1 评论· 多线程 分享到:20 本文作者: 伯乐在线 - 王海波 .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 1.多线程的 ...

随机推荐

  1. 【转】提高你开发效率的十五个Visual Studio 2010使用技巧

    原文网址:http://developer.51cto.com/art/201203/321942.htm 2012-03-06 14:38 Ron Ngai Ron Ngai的博客 字号:T | T ...

  2. centos7 安装配置rsyslog + LogAnalyzer + mysql

    https://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html 安装LNMP 一键安装包 ...

  3. PHP 通过实现 Iterator(迭代器)接口来读取大文件文本

    读了NGINX的access日志,bnb_manage_access.log(31M) 和  bnb_wechat_access.log(50M) 附上代码: <?php /** * User: ...

  4. 02 - Unit010:关联映射

    关联映射 什么是? 数据库中有关联关系的表,通过实体对象引用的方式体现出来,叫关联映射. 为什么? 将多表的记录封装成实体对象. 何时用? 对数据库中的表进行多表查询时. 怎么用? cn_user-- ...

  5. linux下启动springboot服务

    错误日志 SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] . __ ...

  6. mysql 查询所有父级名称

    SELECT T2.id, T2.name FROM ( SELECT @r AS _id, ,,@stop) as stop, (SELECT @r := p_id FROM goods_class ...

  7. 一、jdk工具之jps(JVM Process Status Tools)命令使用

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  8. blktrace btt结果分析

    对于btt的结果分析十分的困难,我和同事花了很多的时间在网上查找btt输出的每一项参数的意义,试图更好的分析bio的统计信息,但网上文章一大抄,翻来覆去就是那几篇文章. 本文中内容参考了以下网址: 1 ...

  9. QT error LNK2019: 无法解析的外部符号

    一个见到那的错误,困扰了好几天了,今天才解决,记录下. 使用QT Creator建立项目,添加一个QT设计界面widget,命名为TestWidget.有ui,头文件(.h),源码文件(.cpp).在 ...

  10. asp.net要验证的用户名和密码

    FormsAuthentication.Authenticate()方法要验证的用户名和密码必须存储在Web.config文件内.如果要验证存储在“ASP.NET成员资格数据库”中的密码,则需要调用M ...