一日一技:在Python里面作分数的运算

一日一技:在Python里面作分数的运算

一日一技:在Python里面作分数的运算

咱们在以前的文章里面讲到过,若是不使用Decimal模块,那么直接作浮点运算得到的小数,多是不许确的。例如 0.1+0.2 它的结果不是 0.3而是 0.30000000000000004。这不是Python的问题,而是浮点数在计算机中不能老是精确储存致使的问题。ide

若是你如今须要作一个除法运算,可是你又忘记了 Decimal模块的正确使用,那怎么办呢?code

这个时候,你想,若是Python里面能够直接进行分数运算就行了,分数不转换为小数,就不会出现浮点数精确性问题了。blog

好消息是,Python里面,真的就能够直接进行分数运算,输入是分数,输出仍是分数。ci

因此 0.1+0.2,在Python里面你能够获得 3/10,而不是 0.30000000000000004。字符串

显然,你不能直接 1/10+2/10,而是须要使用Python的 fractions模块。it

它的使用方法为:io

from fractions import Fraction
a = Fraction(1, 10)
b = Fraction(2, 10)
c = a + b
print(c)

运行效果以下图所示:
一日一技:在Python里面作分数的运算class

完美回避了浮点数的不精确问题。import

其中 Fraction()的第一个参数为分子,第2个参数为分母。除此以外, Fraction()还能够直接接收一个浮点数或者字符串形式的分数做为参数,例如:方法

Fraction('3/7')
Fraction(0.27)

运行效果以下图所示:

一日一技:在Python里面作分数的运算

相关文章
相关标签/搜索