Отсутствует тип для поведения str.format () - PullRequest
3 голосов
/ 10 февраля 2011

Согласно документации по Python здесь , при исключении типа по умолчанию используется тип 'g' для аргументов с плавающей точкой.

Тем не менее,

print("{0:.2}".format(14.9))

печатает "1.5e + 01", а

print("{0:.2g}".format(14.9))

печатает "15"

Это просто проблема неправильной документации или есть другая причина для этого?

Ответы [ 2 ]

5 голосов
/ 10 февраля 2011

Согласно исходному коду , это ошибка документации.Правильное описание поведения без спецификатора с плавающей запятой "как 'g', но всегда с хотя бы одной цифрой после десятичной запятой".

1 голос
/ 10 февраля 2011

Вы связали документацию по Python 2.7, но на самом деле вы использовали Python 3.x.В документации Python 3.x поведение правильно задокументировано.

Документация Python 2.7 в любом случае неисправна:

>>> "{0:.2}".format(14.9)
'15.0'

>>> "{0:.2g}".format(14.9)
'15'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...