python3 进行保精度运算 fractions 模块 简单使用

在实际应用场景中,采用  /  运行除法得到的结果如果是 无限小数 或 无理数,那么它会失去原有的精度。为了保证原有的精度,python提供了fractions模块,采用分数的形式使运算的一直是有理数而不会失去原有精度。

fractions模块是python自带模块,不需要安装,直接倒入即可

import fractions

简单使用

#创建fractions对象
d = fractions.Fraction('1.1') # 11/10
i = fractions.Fraction(2,3) # 2/3
k = fractions.Fraction(*(2.5).as_integer_ratio()) # 5/2

这里也可以传入一个浮点型,但是由于cpu的工作原理,可能会得到一个极限值是传入浮点型值但是本值不等于浮点型值得fraction对象

print(fractions.Fraction(1.1)) # 2476979795053773/2251799813685248

但是这个问题是可以解决的

print(fractions.Fraction(1.1).limit_denominator()) # 11/10

limit_denominator 可以限定浮点精度,这样就可以得到传入浮点型的真值了。

Fraction对象支持算数运算和关系运算,在需要进行精确运算时,用fractions模块肯定没错了,嘿嘿。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值