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.

1voto

magrinya Points 7

C'est seulement si vous voulez obtenir la première décimale.

print(int(float(input()) * 10) % 10)

Ou vous pouvez essayer ceci

num = float(input())
b = num - int(num) 
c = b * 10
print(int(c))

1voto

Jishnu P Das Points 91

Utilisation du module mathématique

La rapidité de ce processus doit être testée.

from math import floor

def get_decimal(number):
    '''returns number - floor of number'''
    return number-floor(number)

Exemple :

n = 765.126357123

get_decimal(n)

0.12635712300004798

1voto

CruelFish Points 11
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

1voto

kopidingin Points 11

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

0voto

M H Points 63

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.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