web-dev-qa-db-fra.com

Afficher un flottant avec deux décimales dans Python

J'ai une fonction prenant des arguments flottants (généralement des nombres entiers ou décimaux avec un chiffre significatif), et j'ai besoin de sortir les valeurs dans une chaîne avec deux décimales (5 -> 5,00, 5,5 -> 5,50, etc.). Comment puis-je faire cela en Python?

97
MarathonStudios

Vous pouvez utiliser l'opérateur de formatage de chaîne pour cela:

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'

Le résultat de l'opérateur est une chaîne, vous pouvez donc le stocker dans une variable, imprimer etc.

129
NPE

Etant donné que cet article peut paraître ici pendant un moment, signalons également la syntaxe python 3:

"{:.2f}".format(5)
225
Daren Thomas

f-string formatage:

Ceci est nouveau dans Python 3.6 - la chaîne est placée entre guillemets comme d'habitude, précédée de f'... de la même manière que vous utiliseriez r'... pour une chaîne brute. Ensuite, vous placez ce que vous voulez mettre dans votre chaîne, variables, nombres, accolades f'some string text with a {variable} or {number} within that text' - et Python s’évaluent comme avec les méthodes de formatage de chaîne précédentes, sauf que cette méthode est beaucoup plus lisible.

>>>a = 3.141592
>>>print(f'My number is {a:.2f} - look at the Nice rounding!')

My number is 3.14 - look at the Nice rounding!

Vous pouvez voir dans cet exemple nous format avec décimales de la même manière que les méthodes de formatage de chaîne précédentes.

NB a peut être un nombre, une variable ou même une expression, par exemple f'{3*my_func(3.14):02f}'.

À l'avenir, avec un nouveau code, les chaînes f doivent être préférées aux méthodes courantes% s ou str.format () car elles sont beaucoup plus rapides .

40
toonarmycaptain

Formatage de chaîne:

print "%.2f" % 5
6
bradley.ayers

Utilisation de python formatage de chaîne.

>>> "%0.2f" % 3
'3.00'
4
kevpie

Si vous voulez réellement changer le numéro lui-même au lieu de ne l'afficher que différemment, utilisez format ()

Formatez-le à 2 décimales:

format(value, '.2f')

example:

>>> format(5.00000, '.2f')
'5.00'
2
Josh

Je sais que c'est une vieille question, mais j'avais du mal à trouver la réponse moi-même. Voici ce que je suis venu avec:

Python 3:


num_dict = { 'num': 0.123, 'num2':0.127}
"{0[num]:.2f}_{0[num]:.2f}".format(num_dict)

#output:  
0.12_0.13
2

Utilisation de la syntaxe Python 3:

print('%.2f' % number)
1
S. Roelofs