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 :

Arrondi d'un nombre floattant [Python 3.X]


Sujet :

Python

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut Arrondi d'un nombre floattant
    bnjour
    je fais des calculs avec python tous marche nickel juste j'ai un petit soucis
    ma fonction retoure la valeur exacte elle trop longue
    une valeur comme 1.3478796535e-7
    je veux la rendre comme celleci 1.347e-7
    (l'affichage se fait sur tkinter)
    merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Tu as essayé floor ou round ?

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Dans la mesure où l'objectif est l'affichage, le mieux est de convertir en chaine de caractère en même temps que la mise au format voulu.

    Avec Python 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = "{:.3e}".format(1.3478796535e-7)
    print(x)
    '1.348e-07'
    A noter que le dernier chiffre (ici le 7) a été arrondi à 8 en fonction des chiffres suivants.

    Avec les versions antérieures de Python, on utilise la mise au format avec '%': voir la doc.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Tu as essayé floor ou round ?
    round (x,n) retourne le nombre d'éléments après la virgule , le e-7 qui me gène

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Dans la mesure où l'objectif est l'affichage, le mieux est de convertir en chaine de caractère en même temps que la mise au format voulu.

    Avec Python 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = "{:.3e}".format(1.3478796535e-7)
    print(x)
    '1.348e-07'
    A noter que le dernier chiffre (ici le 7) a été arrondi à 8 en fonction des chiffres suivants.

    Avec les versions antérieures de Python, on utilise la mise au format avec '%': voir la doc.
    normlement ça marche et pour l'utiliser après dans le calcule il suffit de la convertir avec float(x) ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2018
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2018
    Messages : 73
    Par défaut
    Citation Envoyé par elmhmdi Voir le message
    normlement ça marche et pour l'utiliser après dans le calcule il suffit de la convertir avec float(x) ?
    Je pense que vous n'avez pas compris ce que voulait dire tyrtamos : le principe est de séparer la manipulation de la donnée et sa présentation (son affichage). La donnée est égale à 1.3478796535e-7, vous la manipulez avec une variable qui référence donc ce float. x dans l'exemple de tyrtamos contient une chaine mise en forme et n'est destinée qu'à l'affichage. Pour vos calculs, vous utilisez la variable référençant le float, pas le str destiné à l'affichage.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Par défaut
    Citation Envoyé par dad3zero Voir le message
    Je pense que vous n'avez pas compris ce que voulait dire tyrtamos : le principe est de séparer la manipulation de la donnée et sa présentation (son affichage). La donnée est égale à 1.3478796535e-7, vous la manipulez avec une variable qui référence donc ce float. x dans l'exemple de tyrtamos contient une chaine mise en forme et n'est destinée qu'à l'affichage. Pour vos calculs, vous utilisez la variable référençant le float, pas le str destiné à l'affichage.
    merci Bien j'ai bien compris

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arrondi d'un nombre par rapport à des tranches
    Par l0quito dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/04/2010, 11h55
  2. Arrondi d'un nombre ou
    Par Centigrade dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2008, 14h29
  3. arrondi d'un nombre réel
    Par KHEOPS1982 dans le forum Delphi
    Réponses: 6
    Dernier message: 17/06/2006, 20h22
  4. Réponses: 3
    Dernier message: 22/05/2005, 12h59
  5. [langage] Erreur d'arrondi sur petits nombres
    Par Tchetch dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2005, 10h11

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