148 votes

Obtenir une seule décimale

Comment puis-je convertir 45.34531 a 45.3 ?

242voto

relet Points 2668

Essayez-vous de le représenter avec un seul chiffre ?

print("{:.1f}".format(number)) # Python3
print "%.1f" % number          # Python2

ou arrondir réellement les autres décimales ?

round(number,1)

ou même arrondir strictement à la baisse ?

math.floor(number*10)/10

0 votes

Y a-t-il une chance que votre 1ère et 3ème solution donnent des résultats différents ? Je pense que les deux sont exactement les mêmes @relet

1 votes

Essayez number=-2.55. Ils renvoient également des types différents.

0 votes

@DeveshSaini essayez le numéro 2.36. Le premier donnera 2,4, le troisième donnera 2,3.

40voto

miku Points 63392
>>> "{:.1f}".format(45.34531)
'45.3'

Ou utilisez le rond intégré :

>>> round(45.34531, 1)
45.299999999999997

13 votes

Mise à jour : La ronde me donne 45,3 aujourd'hui.

2 votes

Cette réponse est correcte mais le formatage est beaucoup trop compliqué. Vous devriez simplement écrire "{:.1f}".format(45.34531) .

0 votes

@DaveHalter, écrire 0.1 au lieu de .1 est bien trop compliqué, comment quelqu'un pourrait-il suivre ce code...

21voto

DixonD Points 2637
round(number, 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