文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>分数运算

分数运算

时间:2010-07-13  来源:lufeng369

#
gcd=lambda a,b:a if b==0 else gcd(b,a%b)
class F:
        def __init__(self,fenzi,fenmu=1):
              while fenzi!=int(fenzi) or fenmu!=int(fenmu) : fenzi*=10;fenmu*=10
              g=gcd(fenzi,fenmu)
              self.fenzi=int(fenzi//g)
              self.fenmu=int(fenmu//g)
        def __str__(self):
              return str(self.fenzi)+'/'+str(self.fenmu)
        
        def __add__(self,other):
              fenzi=self.fenzi*other.fenmu+other.fenzi*self.fenmu
              fenmu=self.fenmu*other.fenmu
              g=gcd(fenzi,fenmu)
              return F(fenzi//g,fenmu//g)
        def __neg__(self):
               return F(-self.fenzi,self.fenmu)
        def __sub__(self,other):
               return self+(-other)
        def __mul__(self,other):
               fenzi=self.fenzi*other.fenzi
               fenmu=self.fenmu*other.fenmu
               g=gcd(fenzi,fenmu)
               return F(fenzi//g,fenmu//g)
        def __invert__(self):
               return F(self.fenmu,self.fenzi)
        def __div__(self,other):
               return self*(~other)

while True:print eval(raw_input('eval:'))

支持分数的加(+)减(-)乘(*)除(/),取倒数(~)
支持小数化分数.

示例:eval:F(2.8,22)
输出结果为7/55
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载