Python 科学记数法中 {:.4e} 和 {:2.4} 有什么区别
What is difference between {:.4e} and {:2.4} in Python scientific notation
对于我试图用科学记数法表示的数字,我不太明白下面两个打印语句之间的区别是什么。我认为最下面的应该为打印结果留出 2 个空格,并将小数位移动 4 次,但我得到的结果并不能证实这种理解。至于第一个,4e 是什么意思?
>>> print('{:.4e}'.format(3454356.7))
3.4544e+06
>>> print('{:2.4}'.format(3454356.7))
3.454e+06
非常感谢所有帮助。
在第一个例子中,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
如果要生成浮点数,则必须指定浮点数类型:
>>> '{:2.4f}'.format(3454356.7)
'3454356.7000'
否则,如果您不指定类型,Python 将选择 g
作为类型,其精度将表示基于其 significant figures 的精度,数字 在之前和在之后的小数点。由于您的精度为 4
,它只会显示 4 位数字,回落到科学记数法,因此不会添加错误的精度。
The precision is a decimal number indicating how many digits should be displayed after the decimal point for a floating point value formatted with 'f'
and 'F'
, or before and after the decimal point for a floating point value formatted with 'g'
or 'G'
. For non-number types the field indicates the maximum field size - in other words, how many characters will be used from the field content. The precision is not allowed for integer values.
(source,强调我的)
最后,注意宽度(上面格式字符串中的2
)包括全宽,包括小数点前的数字,小数点后的数字,小数点本身,和科学记数法的组成部分。以上结果的宽度为 12,因此在这种情况下,格式字符串的宽度将被忽略。
对于我试图用科学记数法表示的数字,我不太明白下面两个打印语句之间的区别是什么。我认为最下面的应该为打印结果留出 2 个空格,并将小数位移动 4 次,但我得到的结果并不能证实这种理解。至于第一个,4e 是什么意思?
>>> print('{:.4e}'.format(3454356.7))
3.4544e+06
>>> print('{:2.4}'.format(3454356.7))
3.454e+06
非常感谢所有帮助。
在第一个例子中,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
如果要生成浮点数,则必须指定浮点数类型:
>>> '{:2.4f}'.format(3454356.7)
'3454356.7000'
否则,如果您不指定类型,Python 将选择 g
作为类型,其精度将表示基于其 significant figures 的精度,数字 在之前和在之后的小数点。由于您的精度为 4
,它只会显示 4 位数字,回落到科学记数法,因此不会添加错误的精度。
The precision is a decimal number indicating how many digits should be displayed after the decimal point for a floating point value formatted with
'f'
and'F'
, or before and after the decimal point for a floating point value formatted with'g'
or'G'
. For non-number types the field indicates the maximum field size - in other words, how many characters will be used from the field content. The precision is not allowed for integer values.
(source,强调我的)
最后,注意宽度(上面格式字符串中的2
)包括全宽,包括小数点前的数字,小数点后的数字,小数点本身,和科学记数法的组成部分。以上结果的宽度为 12,因此在这种情况下,格式字符串的宽度将被忽略。