172 votes

Comment obtenir les chiffres après la virgule ?

Comment obtenir les chiffres après la virgule ?

Par exemple, si j'ai 5.55 comment puis-je obtenir .55 ?

2 votes

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.

10voto

Juri Robl Points 2238

Essayez Modulo :

5.55%1 = 0.54999999999999982

8voto

Albert G Lieu Points 543

Pour que cela fonctionne avec les nombres positifs et négatifs : essayez abs(x)%1 . Pour les nombres négatifs, sans avec abs ça va mal se passer.

5.55 % 1

sortie 0.5499999999999998

-5.55 % 1

sortie 0,4500000000000002

5voto

lacqui Points 3797
import math
orig = 5.55
whole = math.floor(orig)    # whole = 5.0
frac = orig - whole         # frac = 0.55

5voto

yosemite_k Points 984

Similaire à la réponse acceptée, une approche encore plus simple utilisant des chaînes de caractères serait

def number_after_decimal(number1):
    number = str(number1)
    if 'e-' in number: # scientific notation
        number_dec = format(float(number), '.%df'%(len(number.split(".")[1].split("e-")[0])+int(number.split('e-')[1])))
    elif "." in number: # quick check if it is decimal
        number_dec = number.split(".")[1]
    return number_dec

4voto

ghostdog74 Points 86060
>>> n=5.55
>>> if "." in str(n):
...     print "."+str(n).split(".")[-1]
...
.55

Prograide.com

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.

Powered by:

X