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 :

retourner la partie décimale d'un float


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    informatique
    Inscrit en
    Novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 167
    Par défaut retourner la partie décimale d'un float
    Bonjour à tous , je cherche a avoir une méthode prés-définie qui me retourne la partie décimal.
    merci

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    Tu peux passer par "modulo" comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nb = 2.051
    print nb%1
    >>> 0.051
    Ciao

    Ju

  3. #3
    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
    Il n'y aura pas un problème de précision ? Tu as testé Julien N ?

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut Fred1599,

    Oui j'ai testé avant et ça marche bien, du moins avec l'exemple donné. Mais c'est peut-être pas ce que le PO souhaitais.

    Ju

  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
    Python 2.x

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> nb = 2.051
    >>> print nb%1
    0.051
    Python 3.x

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> nb = 2.051
    >>> print(nb%1)
    0.051000000000000156
    En effet en python 2 ça fonctionne mais pas avec la version 3...

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

    Ce qui change avec Python3 c'est la précision affichée par "print" mais pas le nombre lui même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
    Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32
    32
    Type "help", "copyright", "credits" or "license" for more inf
    >>> f = 2.051
    >>> '%.20f' % f
    '2.05100000000000015632'
    >>> f
    2.051
    >>>
    Pour le reste, il n'y a pas de fonction dans la libc qui retourne la partie décimale d'un nombre.
    C'est "normal" vu la représentation des "float" plutot orientés calculs "scientifiques".
    C'est em... lorsqu'on fait de la comptabilité mais dans ce cas on n'utilise pas des "float" mais plutôt Decimal ou autre.

    Dommage de passer par modulo pour retourner çà: une soustraction serait plus rapide (mais un peu plus compliquée car il faut faire attention au signe).

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

Discussions similaires

  1. Extraire la partie décimale d'un float
    Par kryptong dans le forum Débuter
    Réponses: 15
    Dernier message: 19/01/2013, 22h01
  2. Partie décimale d'un float
    Par dré kam dans le forum C
    Réponses: 33
    Dernier message: 29/06/2011, 17h01
  3. Extraire la partie décimal d'un float en c
    Par souhe_nits dans le forum Débuter
    Réponses: 5
    Dernier message: 22/03/2011, 17h15
  4. Parties entière et décimale d'un float
    Par amateurc dans le forum Ada
    Réponses: 15
    Dernier message: 31/07/2008, 20h42
  5. Réponses: 15
    Dernier message: 30/01/2008, 18h23

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