Python科学记数法中{:.4e}和{:2.4}之间的区别是什么

Python科学记数法中{:.4e}和{:2.4}之间的区别是什么,python,string,format,scientific-notation,Python,String,Format,Scientific Notation,对于我试图用科学记数法表示的数字,我不太明白下面两个打印语句之间的区别。我认为最下面的一个应该为打印结果留出2个空格,并将小数点移动4次,但我得到的结果并不能证实这种理解。至于第一个,4e是什么意思 >>> print('{:.4e}'.format(3454356.7)) 3.4544e+06 >>> print('{:2.4}'.format(3454356.7)) 3.454e+06 非常感谢您的帮助。在第一个示例中,4e表示科学记数法中的小数点后4

对于我试图用科学记数法表示的数字,我不太明白下面两个打印语句之间的区别。我认为最下面的一个应该为打印结果留出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
意味着将整个数据拟合成两个字符

>>> 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
作为类型,该类型的精度表示基于其小数点前后的数字的精度。由于您的精度为
4
,它将只显示4位数字,返回到科学记数法,因此不会增加错误的精度

精度是一个十进制数,指示使用
'f'
'f'
格式化的浮点值在小数点后应显示多少位,或使用
'g'
'g'格式化的浮点值在小数点前后应显示多少位。对于非数字类型,字段指示最大字段大小——换句话说,字段内容将使用多少个字符。整数值不允许使用精度

(,我的重点)


最后,请注意宽度(上述格式字符串中的
2
)包括全宽,包括小数点前的数字、小数点后的数字、小数点本身以及科学符号的组成部分。上述结果的宽度为12,因此在本例中,格式字符串的宽度被忽略。

注意,
2
'{:2.4}'
中的字段宽度被忽略,因为数据不能容纳两个字符。如果它的大小明显较大,例如
'{:10.4}'
,则,Python将根据需要使用前缀空格来实现该字符数(
'3.454e+06'
)。插入
0
将前缀字符更改为
0
'{:012.4}'。格式(3454356.7)
给出
'0003.454e+06'
。谢谢大家。我现在明白了。非常感谢。