Bonjour à tous , je cherche a avoir une méthode prés-définie qui me retourne la partie décimal.
merci
Bonjour à tous , je cherche a avoir une méthode prés-définie qui me retourne la partie décimal.
merci
Salut,
Tu peux passer par "modulo" comme ceci:
Ciao
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 nb = 2.051 print nb%1 >>> 0.051
Ju
Il n'y aura pas un problème de précision ? Tu as testé Julien N ?
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
Python 2.x
Python 3.x
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >>> nb = 2.051 >>> print nb%1 0.051
En effet en python 2 ça fonctionne mais pas avec la version 3...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >>> nb = 2.051 >>> print(nb%1) 0.051000000000000156
Salut,
Ce qui change avec Python3 c'est la précision affichée par "print" mais pas le nombre lui même:
Pour le reste, il n'y a pas de fonction dans la libc qui retourne la partie décimale d'un nombre.
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 >>>
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
Partager