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
?
def fractional_part(numerator, denominator):
# Operate with numerator and denominator to
# keep just the fractional part of the quotient
if denominator == 0:
return 0
else:
return (numerator/ denominator)-(numerator // denominator)
print(fractional_part(5, 5)) # Should be 0
print(fractional_part(5, 4)) # Should be 0.25
print(fractional_part(5, 3)) # Should be 0.66...
print(fractional_part(5, 2)) # Should be 0.5
print(fractional_part(5, 0)) # Should be 0
print(fractional_part(0, 5)) # Should be 0
Plus facile si l'entrée est une chaîne de caractères, nous pouvons utiliser split()
decimal = input("Input decimal number: ") #123.456
# split 123.456 by dot = ['123', '456']
after_coma = decimal.split('.')[1]
# because only index 1 is taken then '456'
print(after_coma) # '456'
si vous voulez faire un nombre, tapez print(int(after_coma)) # 456
Qu'en est-il :
a = 1.234
b = a - int(a)
length = len(str(a))
round(b, length-2)
Sortie :print(b)
0.23399999999999999
round(b, length-2)
0.234
Puisque l'arrondi est envoyé à la longueur de la chaîne de décimales ('0.234'), nous pouvons simplement soustraire 2 pour ne pas compter le '0.', et déterminer le nombre de décimales souhaité. Cela devrait fonctionner la plupart du temps, sauf si vous avez beaucoup de décimales et que l'erreur d'arrondi lors du calcul de b interfère avec le deuxième paramètre de round.
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.