python怎么进行分数运算_一日一技:在Python里面做分数的运算

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

我们在之前的文章里面讲到过,如果不使用Decimal模块,那么直接做浮点运算获得的小数,可能是不准确的。例如 0.1+0.2 它的结果不是 0.3而是 0.30000000000000004。这不是Python的问题,而是浮点数在计算机中不能总是精确储存导致的问题。

如果你现在需要做一个除法运算,但是你又忘记了 Decimal模块的正确使用,那怎么办呢?

这个时候,你想,如果Python里面可以直接进行分数运算就好了,分数不转换为小数,就不会出现浮点数精确性问题了。

好消息是,Python里面,真的就可以直接进行分数运算,输入是分数,输出还是分数。

所以 0.1+0.2,在Python里面你可以得到 3/10,而不是 0.30000000000000004。

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

它的使用方法为:

from fractions import Fraction

a = Fraction(1, 10)

b = Fraction(2, 10)

c = a + b

print(c)

运行效果如下图所示:

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

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

Fraction('3/7')

Fraction(0.27)

运行效果如下图所示:

文章来源: blog.51cto.com,作者:未闻Code,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.51cto.com/15023263/2559181

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值