Divisions avec précision réglable

Description

Voici un petit programme qui vous permet d'avoir le résultat de divisions avec la précision que vous voulez.
10 chiffres après la virgule ? c'est possible
10000 chiffres après la virgule ? c'est également possible

N'hésitez pas à commenter, noter et me conseiller dans l'optimisation.

Source / Exemple :


import sys,time

while True:
 
 # les deux nombres qui stockent le resultat
 entier = long(0)
 decimales = "" # en attendant de trouver mieux pour gerer 00210 par exemple

 nombre1 = raw_input("\nveuillez entrer le nombre : ")
 diviseur = raw_input("veuillez entrer le diviseur : ")
 compteur = int(raw_input("\nveuilllez entrer la precision : "))
 
 tailletotale = len(nombre1)+len(diviseur)
 
 nombre1 = long(nombre1)
 diviseur = long(diviseur)
 
 montemps=time.clock()
 
 
 # 1ere division entiere
 entier = nombre1//diviseur

 nombre1 %= diviseur

 # divisions des restes
 if nombre1 and diviseur != 0:
  while compteur > 0:
   if nombre1 < diviseur:
    nombre1 *= 10

   decimales += str(nombre1//diviseur)
   nombre1 %= diviseur
   compteur -= 1
  
   # recherche d'un infini             (experimental)
   #strdecimales = str(decimales)
   #infini = True
   
   #for lettre in strdecimales:
    #if strdecimales.count(lettre)%2 != 0:
     #infini = False
     #break

   #if infini == True and len(strdecimales) >= tailletotale:
    #compteur = 0 # pour arreter la prochaine boucle

  printemp = time.clock()-montemps
 printemp = time.clock()-montemps

 sys.stdout.write("\nresultat : "+str(entier)+","+decimales+"\n")
 print "\nle calcul a pris :", printemp

Conclusion :


les long sont très utiles !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.