У меня есть функция, принимающая аргументы float (обычно целые числа или десятичные числа с одной значащей цифрой), и мне нужно выводить значения в строке с двумя десятичными знаками (5 → 5,00, 5,5 → 5,50 и т.д.). Как я могу это сделать в Python?
Отображение поплавка с двумя десятичными знаками в Python
Ответ 1
Для этого можно использовать оператор форматирования строк:
>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
Результатом оператора является строка, поэтому вы можете сохранить ее в переменной, печатать и т.д.
Ответ 2
Поскольку этот пост может быть здесь некоторое время, давайте также укажем синтаксис Python 3:
"{:.2f}".format(5)
Ответ 3
форматирование 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-строки намного быстрее.
Ответ 4
Форматирование строк:
print "%.2f" % 5
Ответ 5
Использование форматирования строки python.
>>> "%0.2f" % 3
'3.00'
Ответ 6
Использование синтаксиса Python 3:
print('%.2f' % number)
Ответ 7
Если вы действительно хотите изменить само число, а не только отображать его по-другому, используйте format()
Отформатируйте его до 2 десятичных знаков:
format(value, '.2f')
example:
>>> format(5.00000, '.2f')
'5.00'
Ответ 8
Я знаю, что это старый вопрос, но я изо всех сил пытался найти ответ сам. Вот что я придумала:
Python 3:
num_dict = { 'num': 0.123, 'num2':0.127}
"{0[num]:.2f}_{0[num]:.2f}".format(num_dict)
#output:
0.12_0.13