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模块肯定没错了,嘿嘿。。。

你可能感兴趣的:(python,基础,python3)