В чем разница между {:.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 3

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, поэтому в этом случае ширина строки формата просто игнорируется.