Показать поплавок с двумя десятичными разрядами в Python - PullRequest
92 голосов
/ 27 мая 2011

У меня есть функция, принимающая аргументы с плавающей точкой (обычно целые или десятичные числа с одной значащей цифрой), и мне нужно вывести значения в строке с двумя десятичными знаками (5 -> 5,00, 5,5 -> 5,50 и т. Д.).Как я могу сделать это в Python?

Ответы [ 8 ]

218 голосов
/ 27 мая 2011

Поскольку этот пост может быть здесь некоторое время, давайте также укажем синтаксис Python 3:

"{:.2f}".format(5)
123 голосов
/ 27 мая 2011

Для этого вы можете использовать оператор форматирования строки:

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

Результатом оператора является строка, поэтому вы можете сохранить ее в переменной, распечатать и т. Д.

37 голосов
/ 29 сентября 2017

f-строка форматирование:

Это новое в Python 3.6 - строка помещается в кавычки, как обычно, с добавлением f'... так же, как и r'... для необработанной строки.Затем вы помещаете все, что хотите, в строку, переменные, числа, заключенные в фигурные скобки f'some string text with a {variable} or {number} within that text' - и Python оценивает так же, как и в предыдущих методах форматирования строки, за исключением того, что этот метод гораздо более читабелен.

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

В этом примере вы можете видеть, как мы форматируем с десятичными знаками аналогично предыдущим методам форматирования строк.

NB a может быть числом, переменной или даже выражением, например, f'{3*my_func(3.14):02f}'.

В дальнейшем, с новым кодом, f-строки должны быть предпочтительнее обычных% s или str.Методы .format () в виде f-строк намного быстрее .

6 голосов
/ 27 мая 2011

Форматирование строки:

print "%.2f" % 5
4 голосов
/ 27 мая 2011

Использование форматирования строки Python.

>>> "%0.2f" % 3
'3.00'
2 голосов
/ 24 января 2019

Если вы действительно хотите изменить само число, а не только отображать его по-другому, используйте format ()

Отформатируйте его до 2 десятичных знаков:

format(value, '.2f')

example:

>>> format(5.00000, '.2f')
'5.00'
1 голос
/ 08 апреля 2019

Я знаю, что это старый вопрос, но я изо всех сил пытался найти ответ сам.Вот что я придумал:

Python 3:


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

#output:  
0.12_0.13
1 голос
/ 11 августа 2017

Использование синтаксиса Python 3:

print('%.2f' % number)
...