Comment obtenir les chiffres après la virgule ?
Par exemple, si j'ai 5.55
comment puis-je obtenir .55
?
Comment obtenir les chiffres après la virgule ?
Par exemple, si j'ai 5.55
comment puis-je obtenir .55
?
J'ai constaté que les nombres très grands avec des parties fractionnaires très grandes peuvent poser des problèmes lorsqu'on utilise le modulo 1 pour obtenir la fraction.
import decimal
>>> d = decimal.Context(decimal.MAX_PREC).create_decimal(
... '143000000000000000000000000000000000000000000000000000000000000000000000000000.1231200000000000000002013210000000'
... )
...
>>> d % 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
decimal.InvalidOperation: [<class 'decimal.DivisionImpossible'>]
J'ai plutôt pris la partie intégrale et l'ai soustraite en premier pour aider à simplifier le reste.
>>> d - d.to_integral()
Decimal('0.1231200000000000000002013210')
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
En rapport : En Python, comment diviser un nombre par le point décimal ?
0 votes
Je pense que vous devriez modifier la réponse acceptée à ce sujet. J'ai failli ne pas faire défiler le texte jusqu'à la réponse votée x10 fois, et cela m'aurait fait mal plus tard.
0 votes
Je pense que c'est une approche simple :
float( '0.' + str(5.55).split('.')[1] )
>>> 0.55. Mais si quelqu'un pense différemment, faites-le moi savoir.