В чем разница между {:.4e} и {: 2.4} в научной нотации Python
Я не совсем понимаю, в чем разница между двумя приведенными ниже печатными утверждениями для числа, которое я пытаюсь выразить в научной нотации. Я думал, что нижний должен разрешить 2 пробела для напечатанного результата и переместить десятичный знак 4 раза, но результат, который я получаю, не подтверждает это понимание. Что касается первого, Что означает 4e?
>>> print('{:.4e}'.format(3454356.7))
3.4544e+06
>>> print('{:2.4}'.format(3454356.7))
3.454e+06
Вся помощь очень ценится.
2 ответа:
В первом примере,
4e
означает, 4 десятичных знака в научной нотации. Вы можете узнать это, сделав>>> print('{:.4e}'.format(3454356.7)) 3.4544e+06 >>> print('{:.5e}'.format(3454356.7)) 3.45436e+06 >>> print('{:.6e}'.format(3454356.7)) 3.454357e+06
Во втором примере,
.4
, означает 4 значимые цифры. И2
означает, что все данные помещаются в 2 символа>>> print('{:2.4}'.format(3454356.7)) 3.454e+06 >>> print('{:2.5}'.format(3454356.7)) 3.4544e+06 >>> print('{:2.6}'.format(3454356.7)) 3.45436e+06
Тестирование с различным значением
2
>>> print('-{:20.6}'.format(3454356.7)) - 3.45436e+06
Вы можете узнать больше из документации python на
format
Если вы хотите создать поплавок, вам нужно будет указать тип поплавка:
>>> '{:2.4f}'.format(3454356.7) '3454356.7000'
В противном случае, если вы не укажете тип, Python выберет
g
в качестве типа, для которого точность будет означать точность, основанную на его значащих цифрах, цифрах Перед и после десятичной запятой. И поскольку у вас есть точность4
, он будет отображать только 4 цифры, возвращаясь к научной нотации, чтобы не добавлять ложную точность.Точность - это десятичное число, указывающее, сколько цифр должно отображаться после десятичной точки для значения с плавающей запятой, отформатированного с помощью
'f'
и'F'
, или до и после десятичной точки для значения с плавающей запятой, отформатированного с помощью'g'
или'G'
. Для типов без чисел поле указывает максимальный размер поля - другими словами, сколько символов будет использовано из содержимого поля. Точность не допускается для целых чисел ценности.(Источник , Курсив мой)
Наконец, обратите внимание, что ширина (2
в приведенной выше строке формата) включает в себя полную ширину, включая цифры перед десятичной точкой, цифры после нее, саму десятичную точку, и компоненты научной нотации. Приведенный выше результат будет иметь ширину 12, поэтому в этом случае ширина строки формата просто игнорируется.