How to display a float with two decimal places? [duplicate]
Как отобразить число с плавающей запятой с двумя десятичными знаками?
У меня есть функция, принимающая аргументы с плавающей запятой (обычно целые числа или десятичные дроби с одной значащей цифрой), и мне нужно вывести значения в виде строки с двумя десятичными знаками (5 → 5.00, 5.5 → 5.50 и т.д.). Как я могу это сделать на Python?
Переведено автоматически
Ответ 1
Поскольку этот пост может быть здесь какое-то время, давайте также укажем на синтаксис python 3:
"{:.2f}".format(5)
Ответ 2
Для этого можно использовать оператор форматирования строки:
>>> '%.2f' % 1.234 '1.23' >>> '%.2f' % 5.0 '5.00'
Результатом действия оператора является строка, поэтому вы можете сохранить ее в переменной, распечатать и т.д.
Это было новым в Python 3.6 - строка, как обычно, заключена в кавычки, перед которыми ставится f'... так же, как вы бы это делали r'... для необработанной строки. Затем вы помещаете все, что хотите, в свою строку, переменные, числа, внутри фигурных скобок f'some string text with a {variable} or {number} within that text' - и Python выполняет вычисления так же, как и с предыдущими методами форматирования строк, за исключением того, что этот метод намного более удобочитаем.
>>> foobar = 3.141592 >>> print(f'My number is {foobar:.2f} - look at the nice rounding!')
NB foobar может быть числом, переменной или даже выражением, например, f'{3*my_func(3.14):02f}'.
Забегая вперед, скажу, что с новым кодом я предпочитаю f-строки обычным методам %s или str.format(), поскольку f-строки могут быть гораздо более удобочитаемыми и часто намного быстрее.
Ответ 4
Форматирование строки:
a = 6.789809823 print('%.2f' %a)
или
print ("{0:.2f}".format(a))
Можно использовать функцию Round:
print(round(a, 2))
Преимущество функции round() в том, что мы можем сохранить этот результат в другой переменной, а затем использовать его для других целей.