Python 中的字符串格式
String formatting in Python
如何格式化向量中的以下数字?
例如,我拥有的号码:
23.02567
0.025679
我想格式化成这样:
0.230256700+E02
0.025679000+E00
首先,请注意,这不是以科学或工程记数法格式化数字的正确方法。这些数字应始终在小数点前保留一位数字,除非要求指数是 3 的倍数(即 1000 的幂,对应于 SI 前缀之一)。但是,如果您必须使用这种格式,您可以为此编写自己的格式字符串。
>>> x, e = 23.02567, 2
>>> "%f%sE%02d" % (x/10**e, "+" if e >= 0 else "-", abs(e))
'0.230257+E02'
>>> x, e = 0.025679, -1
>>> "%f%sE%02d" % (x/10**e, "+" if e >= 0 else "-", abs(e))
'0.256790-E01'
这是假设给出了指数 e
。如果指数无关紧要,您还可以使用正确的 %E
格式,只需 replace
E+
和 +E
:
>>> ("%E" % x).replace("E+", "+E").replace("E-", "-E")
'2.567900-E02'
如何格式化向量中的以下数字?
例如,我拥有的号码:
23.02567
0.025679
我想格式化成这样:
0.230256700+E02
0.025679000+E00
首先,请注意,这不是以科学或工程记数法格式化数字的正确方法。这些数字应始终在小数点前保留一位数字,除非要求指数是 3 的倍数(即 1000 的幂,对应于 SI 前缀之一)。但是,如果您必须使用这种格式,您可以为此编写自己的格式字符串。
>>> x, e = 23.02567, 2
>>> "%f%sE%02d" % (x/10**e, "+" if e >= 0 else "-", abs(e))
'0.230257+E02'
>>> x, e = 0.025679, -1
>>> "%f%sE%02d" % (x/10**e, "+" if e >= 0 else "-", abs(e))
'0.256790-E01'
这是假设给出了指数 e
。如果指数无关紧要,您还可以使用正确的 %E
格式,只需 replace
E+
和 +E
:
>>> ("%E" % x).replace("E+", "+E").replace("E-", "-E")
'2.567900-E02'