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?
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.
Etant donné que cet article peut paraître ici pendant un moment, signalons également la syntaxe python 3:
"{:.2f}".format(5)
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 .
Formatage de chaîne:
print "%.2f" % 5
Utilisation de python formatage de chaîne.
>>> "%0.2f" % 3
'3.00'
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'
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
Utilisation de la syntaxe Python 3:
print('%.2f' % number)