你的意思是这样的:from fractions import Fraction
import decimal
decimal.getcontext().prec = 50
fractions = [(1,7), (2,3), (22,7), (7001,7), (9,3), (611951,611953), (1,11),(1,7689585)]
su=Fraction(0)
for i, t in enumerate(fractions,1):
f=Fraction(*t)
su+=Fraction(*t)
d=decimal.Decimal(f.numerator) / decimal.Decimal(f.denominator)
print '{} becomes {}'.format(t,f)
print '\tfloat of that is: {}'.format(float(f))
print '\tDecimal: {}'.format(d)
print '\t{} elements cum sum of the list: {}\n'.format(i,su)
印刷品:
^{pr2}$
fraction模块允许您使用有理数(无需转换为float)。一旦你把它们放进分数班,你就可以用它们做算术了(就像在小学里一样)
像这样:>>> Fraction(1,3) + Fraction(3,4)
Fraction(13, 12)
>>> Fraction(1,3) + Fraction(1,6)
Fraction(1, 2)
>>> Fraction(1,2).numerator
1
>>> Fraction(1,2).denominator
2
Fraction模块是默认Python发行版的一部分(从2.6版开始)。在
要将其转换为浮点,请执行float(Fraction(17,18))或在十进制类变量中使用Fraction.numerator和{}进行任意精度转换。在
是这样的:>>> decimal.Decimal(su.numerator) / decimal.Decimal(su.denominator)
Decimal('1008.186144047968368606384293')
或者:>>> float(su.numerator) / su.denominator
1008.1861440479684