博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python decimal和fractions模块
阅读量:4364 次
发布时间:2019-06-07

本文共 1035 字,大约阅读时间需要 3 分钟。

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)

转载于:https://www.cnblogs.com/godiness/p/4809413.html

你可能感兴趣的文章
ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)...
查看>>
解决ios8下coreData没有NSPersistentContainer的问题
查看>>
玩转Android之加速度传感器的使用,模仿微信摇一摇
查看>>
Android 菜单(OptionMenu)大全 建立你自己的菜单
查看>>
Linux驱动开发常用头文件
查看>>
Linux虚机安装配置Tomcat
查看>>
[LeetCode]Find Minimum in Rotated Sorted Array
查看>>
CentOS 7安装redis及php扩展
查看>>
大龄程序员怎样渡过中年危机?(转)
查看>>
浅谈算法和数据结构: 七 二叉查找树
查看>>
Hbuilder MUI 下拉选择与时间选择器
查看>>
MyBatis 入门到精通(二) SQL语句映射XML文件
查看>>
mysql查询优化之一:mysql查询优化常用方式
查看>>
MyBatis ResultMap(2)
查看>>
JavaScript学习第一天(一)
查看>>
C语言基础小斋
查看>>
《Two Dozen Short Lessons in Haskell》(二十)分数
查看>>
Azure IoT Hub和Event Hub相关的技术系列-索引篇
查看>>
《做中学》读后有感
查看>>
Android 网络状态的监控
查看>>