Pour ceux que ça pourrait intéresser, voici une fonction permettant d'obtenir le développement décimal (propre) d'une fraction de numérateur a et de dénominateur b.
Code : Tout sélectionner
def divide(a,b):
s = '-' if a*b < 0 else ''
q,r = divmod(abs(a),abs(b))
qlist = [s,str(q),'.']
rlist = []
while r not in rlist:
rlist.append(r)
q,r = divmod(r*10,abs(b))
qlist.append(str(q))
qlist.insert(rlist.index(r)+3,'(')
qlist.append(')')
return ''.join(qlist).replace('(0)','').rstrip('.')
Code : Tout sélectionner
>>> divide(123,14)
8.7(857142)