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 :

Arrondir un nombre float


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 17
    Par défaut Arrondir un nombre float
    Bonjour, j'ai un nombre avec 10 chiffres aprés la virgule, j'ai cru voir que le module decimal fait cela, pouvez vous me montrer comment il marche?
    merci d'avance!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 57
    Par défaut
    tu peut donner, un exemples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> 1/7
    0
    >>> 1/7.
    0.14285714285714285
    >>> int(1/7)
    0
    >>> int(1/7.)
    0
    >>>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Salut

    Sinon tu peux te creer ta propre fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def arrondi(mon_float,nb_apres_virgule):
        multiplicateur = power(10,nb_apres_virgule)
        nombre = mon_float*multiplicateur
        return nombre/mulitplicateur
     
    # exemple d'utilisation
    > arrondi(10.25666998,3)
    10.256
    Je ne sais pas s'il existe des fonctions toutes faites, mais celle là est tellement facile à faire.
    Peut être dans le module math ?

    Cordialement

    See ++[/code]

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from decimal import Decimal, getcontext
     
    getcontext().prec = 5 #précision voulue
     
    nb1 = 1.
    nb2 = 6.
     
    n = Decimal(str(nb1)) / Decimal(str(nb2))
     
    print n
    Sortie:
    0.16667

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut
    Citation Envoyé par oiffrig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from decimal import Decimal, getcontext
     
    getcontext().prec = 5 #précision voulue
     
    nb1 = 1.
    nb2 = 6.
     
    n = Decimal(str(nb1)) / Decimal(str(nb2))
     
    print n
    Sortie:
    0.16667
    Ce ne serait pas plus simple de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from decimal import Decimal, getcontext
     
    getcontext().prec = 5 #précision voulue
     
    nb1 = 1.
    nb2 = 6.
     
    n = Decimal(str(nb1/nb2))
     
    print n
    A +

    See++

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Parfois python gère mal les précisions de ses float, et si on utilise beaucoup de décimales, au moins avec Decimal on ne les perd pas et elles sont exactes

Discussions similaires

  1. arrondire un nombre
    Par Damarus dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2005, 17h30
  2. Arrondir un nombre comme j'en ai envie !
    Par beletteroi dans le forum Access
    Réponses: 6
    Dernier message: 03/11/2005, 12h42
  3. arrondir un nombre découlant d'une soustraction de date
    Par bertrand_declerck dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2005, 13h51
  4. arrondir un nombre à 2 chiffres après la virgule
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 08h36
  5. [langage] arrondir un nombre
    Par GMI3 dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2004, 11h18

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