3

Я хочу таблицу в Python для печати, как это:Как использовать несколько аргументов в}, когда с помощью метода .format {() в Python

Очевидно, что я хочу использовать. format(), но у меня есть длинные всплывающие окна, которые выглядят так: 1464.1000000000001 Мне нужно, чтобы поплавки округлялись, чтобы они выглядели так: 1464.10 (всегда два десятичных знака, даже если оба они нули, поэтому я не могу использовать функция round()).

Я могу обойти поплавки с помощью "{0:.2f}".format("1464.1000000000001"), но затем они не печатаются в красивые таблицы.

Я могу положить их в красивые столы, делая "{0:>15}.format("1464.1000000000001"), но тогда они не закруглены.

Есть ли способ сделать то и другое? Что-то вроде "{0:>15,.2f}.format("1464.1000000000001")?

+2

Почти там: '. "{0:> 15.2f}" формат (1464,1000000000001)', вероятно, что вы хотите. – Evert

+0

Не могли бы вы использовать 'round()' внутри 'format()?' –

+0

Множество практических примеров на https://pyformat.info/ (рядом с [стандартной документацией Python] (https: //docs.python. орг/3/библиотека/string.html # формат-спецификация мини-язык)). – Evert

ответ

5

Вы были почти там, просто удалите запятую (и передать в число с плавающей запятой, а не строка):

"{0:>15.2f}".format(1464.1000000000001) 

Смотрите Format Specification Mini-Language section:

format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type] 
fill  ::= <any character> 
align  ::= "<" | ">" | "=" | "^" 
sign  ::= "+" | "-" | " " 
width  ::= integer 
precision ::= integer 
type  ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%" 

Разорвать выше формата вниз:

fill: <empty> 
align: < # left 
sign: <not specified> 
width: 15 
precision: 2 
type: `f` 

Demo:

>>> "{0:>15.2f}".format(1464.1000000000001) 
'  1464.10' 

Обратите внимание, что для чисел, выравнивание по умолчанию находится справа, поэтому > можно опустить.

+0

Ничего себе, спасибо! Я сам обошел эту проблему, выполнив две отдельные итерации .format(), и это было ужасно, это намного более элегантно. Я ничего не нашел в Google об этом, так что спасибо большое! –

3
"{0:15.2f}".format(1464.1000000000001) 

Я всегда нахожу этот сайт полезным для этого материала:

https://pyformat.info/

+0

Ненужное. Значение по умолчанию - справа. –