前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:在Python里面做分数的运算

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

作者头像
青南
发布2019-07-30 12:34:36
1.4K0
发布2019-07-30 12:34:36
举报
文章被收录于专栏:未闻Code未闻Code
我们在之前的文章里面讲到过,如果不使用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模块。

它的使用方法为:

代码语言:javascript
复制
from fractions import Fraction

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

运行效果如下图所示:

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

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

代码语言:javascript
复制
Fraction('3/7')
Fraction(0.27)

运行效果如下图所示:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档