IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

augmenter la précision de racine de 2


Sujet :

Python

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 61
    Par défaut augmenter la précision de racine de 2
    Bonjour

    J'aimerai savoir comment augmenter la précision de racine de 2 dans un script.

    J'ai essayé ça mais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from decimal import *
    from math import sqrt
     
    getcontext().prec=10000
     
    r2=Decimal(sqrt(2))
    x=Decimal(5)
    print r2/x
    mais j'ai ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> 
    Traceback (most recent call last):
      File "<module3>", line 6, in <module>
      File "C:\Documents and Settings\IANTE\Mes documents\AmiensPython 2.0\Portable\App\lib\decimal.py", line 652, in __new__
        "First convert the float to a string")
    TypeError: Cannot convert float to Decimal.  First convert the float to a string
    >>>
    Comment résoudre ce problème s'il vous plait.

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par leninelenine Voir le message
    Comment résoudre ce problème s'il vous plait.
    Ben, il faut lire la FAQ et plus particulièrement la réponse à la question "Q. Is there a way to convert a regular float to a Decimal?"

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 61
    Par défaut
    N'y a t'il pas un module pour cela?

    Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par leninelenine Voir le message
    N'y a t'il pas un module pour cela?
    Je ne comprends pas votre question.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    @leninelenine,

    Renseignez-vous, wiztricks annonce l'utilisation du module decimal, il faut prendre le temps à la recherche.

    Il en existe d'autre comme bigfloat par exemple...

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    En écrivant Decimal(sqrt(2)), vous calculez d'abord la racine carrée de 2 en virgule flottante, puis vous essayez de la convertir en Decimal. Même si vous résolvez votre problème immédiat de conversion, la précision sera limitée à ce qui est possible en virgule flottante, vous ne pourrez pas gagner de précision en convertissant en Decimal.

    Pour avoir plus de précision, il faut d'abord convertir 2 en Decimal et ensuite calculer la racine carrée, en utilisant la méthode sqrt de la classe Decimal à la place de la fonction de la bibliothèque math: Decimal(2).sqrt()

Discussions similaires

  1. Augmenter la précision de classificateur
    Par abidineb dans le forum Méthodes prédictives
    Réponses: 2
    Dernier message: 02/07/2011, 12h41
  2. augmenter la précision
    Par deubelte dans le forum C++
    Réponses: 2
    Dernier message: 20/01/2009, 13h34
  3. Augmenter la précision avec la méthode de corrélation de phase
    Par Programmeur_Aladdin dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 28/02/2008, 15h59
  4. [SOLARIS] augmentation de la partition racine
    Par gotrar dans le forum Solaris
    Réponses: 4
    Dernier message: 27/07/2007, 12h39
  5. Réponses: 17
    Dernier message: 04/08/2005, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo