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

Utilisez le plancher et soustrayez le résultat du nombre original :

>> import math #gives you floor.
>> t = 5.55 #Give a variable 5.55
>> x = math.floor(t) #floor returns t rounded down to 5..
>> z = t - x #z = 5.55 - 5 = 0.55

1voto

Frank Points 19

Exemple :

import math
x = 5.55
print((math.floor(x*100)%100))

Cela vous donnera deux chiffres après la virgule, 55 dans cet exemple. Si vous avez besoin d'un seul chiffre, vous réduisez de 10 les calculs ci-dessus ou vous les augmentez en fonction du nombre de chiffres que vous voulez après la virgule.

1voto

Ali Points 11
import math

x = 1245342664.6
print( (math.floor(x*1000)%1000) //100 )

Ça a vraiment marché.

1voto

Emma Points 1

Une autre option serait d'utiliser le re module avec re.findall o re.search :

import re

def get_decimcal(n: float) -> float:
    return float(re.search(r'\.\d+', str(n)).group(0))

def get_decimcal_2(n: float) -> float:
    return float(re.findall(r'\.\d+', str(n))[0])

def get_int(n: float) -> int:
    return int(n)

print(get_decimcal(5.55))
print(get_decimcal_2(5.55))
print(get_int(5.55))

Sortie

0.55
0.55
5

Si vous souhaitez simplifier/modifier/explorer l'expression, elle a été expliquée dans le panneau supérieur droit de la page regex101.com . Si vous le souhaitez, vous pouvez également regarder en ce lien comment il se comporterait par rapport à certains échantillons.


Source :

Comment se débarrasser des nombres flottants supplémentaires dans la soustraction en python ?

1voto

Mario Monroy Points 1

Vous pouvez utiliser ceci :

number = 5.55
int(str(number).split('.')[1])

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