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 :

Multiplication par un décimal, résultat inattendu


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Dev
    Inscrit en
    Février 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2017
    Messages : 6
    Par défaut Multiplication par un décimal, résultat inattendu
    Bonjour à tous, j'aurais besoin d'explications sur un point tout bête, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m = 100 * 2.55
    print(m)
    J'obtiens 254.9999999997
    Pourquoi pas 255 ?

    En vous remerciant par avance et bonne soirée

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 710
    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 710
    Par défaut
    Salut,

    C'est une conséquence des limitations de la représentation des nombres flottants dans la machine: des fractions en base 2. Le Python tutorial explique cela dans les détails.

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

  3. #3
    Membre habitué
    Homme Profil pro
    Dev
    Inscrit en
    Février 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2017
    Messages : 6
    Par défaut
    Merci pour la réponse

    La manière la plus simple pour palier à ce problème serait donc d'éviter d'écrire un décimal sous cette forme et de représenter 2.55 par 255 / 100 ?

    Bonne journée !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 710
    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 710
    Par défaut
    Citation Envoyé par Daplex Voir le message
    La manière la plus simple pour palier à ce problème serait donc d'éviter d'écrire un décimal sous cette forme et de représenter 2.55 par 255 / 100 ?
    oui, mais c'est déjà ce que fait (en gros) le module decimal.

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

Discussions similaires

  1. Multiplication par -1 change le résultat
    Par Amybond dans le forum Maple
    Réponses: 0
    Dernier message: 22/02/2012, 19h09
  2. Réponses: 6
    Dernier message: 10/08/2009, 15h24
  3. Réponses: 14
    Dernier message: 25/07/2006, 22h28
  4. résultat inattendu avec acCmdPrint
    Par stigma dans le forum Access
    Réponses: 3
    Dernier message: 25/03/2006, 21h51
  5. Multiplication par décalage de bits
    Par tekman54000 dans le forum Assembleur
    Réponses: 2
    Dernier message: 25/10/2005, 11h35

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