Divisions avec précision réglable

Soyez le premier à donner votre avis sur cette source.

Vue 4 879 fois - Téléchargée 136 fois

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

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
17 juillet 2010

Salut

Tu devrais te documenter sur la librairie "decimal"...
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
2
Pourquoi prendre la peine d'importer sys et de lancer sys.stdout.write
au lieu d'un simple print
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
2
Vraiment sympa, il y a de l'optimisation à faire, mais c'est intéressant ^^

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.