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 :

Float arrondi à n décimales


Sujet :

Python

  1. #21
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Par défaut
    Et bin les gars, quel boulot! Merci.

    J'ai toujours été étonné qu'une telle classe Float n'apparaisse pas dans une distribution standard et à quel point round() est stupide: pour moi arrondir à x décimales doit afficher x décimales même si c'est x zéros...

  2. #22
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Oups, mauvaise manipe de claviers

  3. #23
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    De rien , mais je viens de voir deux erreurs dans le code que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def__abs__(self):return Float(self.val,self.d)
    #à remplacer par
    def __abs__(self): return Float(abs(self.val),self.d)
     
    #et dans la fonction n_dec:
    elif integer>len(val.split('.')[-1]):
                val=val+'0'*(integer-len(val.split('.')[-1]))
                if _str:
                    return val
                else:
                    return Float(self.val,self.d)
    #return Float(self.val,self.d) à remplacer par return Float(self.val,integer)
    elif integer>len(val.split('.')[-1]):
                val=val+'0'*(integer-len(val.split('.')[-1]))
                if _str:
                    return val
                else:
                    return Float(self.val,integer)
    à quel point round() est stupide: pour moi arrondir à x décimales doit afficher x décimales même si c'est x zéros...
    En même temps, arrondir ne consite pas à rajouter des zéros ... mais il est vrai que ça aurait un côté estétique pratique...

    EDIT : Je viens de découvrir une sérieuse limitationà ma classe : si le float possède un nombre de décimales > 12 il sera tronqué à 12 décimale, je parle de l'attribut val de la classe, les fonctions d'affichage à n décimales marchent très bien... il va donc falloir réviser la classe pour pallier à ce problème : en ajoutant un autre attribut qui contiendrait les décimales au dela de la 13ème et en ré-ajustant les méthodes (pratiquement toutes...)

    EDIT2: En fait, je viens de voir que "stringer" un float renvoi un string de ce dernier avec au maximum 12 décimales, et qu'un objet (une variable) ne peut stocker un float avec au maximum 18 décimales, le seul moyen de contourner cela est de ne pas créer d'objet de type float mais de type str directement, contraignante façon donc... malgré cette contrainte plus qu'ennuyeuse, il est possible de reprendre mon idée de départ, à savoir stocker une valeur flottante sous forme de fraction, une classe donc, qui puisse accepter comme valeur un str, la contrainte de rentrer manuellement un très grand float sera toujours présente (python 2.5 tout du moins) mais au moins, l'on pourra par la suite réaliser des opérations avec ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Arrondi à 1 décimale
    Par Arkoze dans le forum Langage
    Réponses: 3
    Dernier message: 03/10/2011, 23h54
  2. affichage d'un float avec ses décimales
    Par wonderwhy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/12/2010, 19h44
  3. pb - résultat de type double/float arrondi
    Par Ayana dans le forum Langage
    Réponses: 38
    Dernier message: 23/10/2007, 21h05
  4. Réponses: 2
    Dernier message: 07/07/2006, 20h59
  5. float arrondi depuis un fichier
    Par anasama dans le forum C++
    Réponses: 6
    Dernier message: 24/01/2006, 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