(转) python学习笔记6--fraction

原文:https://blog.csdn.net/lemonwyc/article/details/37592883

fraction模块提供有关有理数的算术表达和计算,实际上就是分数的表达和计算。python中的一个分数可以由以下几种方式构造出来:

Fraction(numerator=0, denominator=1)  :第一个参数是分子,默认为0;第二个参数为分母,默认为1。比如Fraction(2)=2;Fraction()=0。

Fraction(other_fraction) :从其他分数构造。

Fraction(float) :从float构造,表达出的分数值与float在内存中的存储值对应,可能不够精确。

Fraction(decimal) :从Decimla数构造。

Fraction(string):从string构造。

使用如下:

  1.  
    from fractions import *
  2.  
    from decimal import *
  3.  
     
  4.  
    #Construct a Fraction by numerator and denominator
  5.  
    print (Fraction(3)) #3
  6.  
    print (Fraction()) #0
  7.  
    print (Fraction(10,8)) #5/4
  8.  
     
  9.  
    #construct by other fraction
  10.  
    print (Fraction(5/4)) #5/4
  11.  
     
  12.  
    #construct by float
  13.  
    print (Fraction(2.5)) #5/2
  14.  
    print (Fraction(1.1)) #2476979795053773/2251799813685248
  15.  
     
  16.  
    #construct by decimal
  17.  
    print (Fraction(Decimal('2.5'))) #5/2
  18.  
     
  19.  
    #construct by string
  20.  
    print (Fraction('12/23')) #12/23


另外,fraction和math中还有几个关于分数操作比较常见的函数

limit_denominator(max=1000000):可以截取想要得到的分母最大值;

floor(fraction):小于该分数的最大整数;

ceil(fraction):大于该分数的最小整数;

round(fraction):各版本略有不同,没具体分析,通常是最近的整数。

    1.  
      #test functions
    2.  
      print (Fraction('3.1415926').limit_denominator(1000)) #355/113
    3.  
      print (floor(Fraction(355,113))) #2
    4.  
      print (ceil(Fraction(355,113))) #3
    5.  

猜你喜欢

转载自www.cnblogs.com/liujiacai/p/9542488.html
今日推荐