请考虑以下Python片段:
for ix in [0.02, 0.2, 2, 20, 200, 2000]:
iss=str(ix) + "e9"
isf=float(iss)
print(iss + "\t=> " + ("%04.03e" % isf ) + " (" + str(isf) + ")")
它生成以下输出:
0.02e9 => 2.000e+07 (20000000.0)
0.2e9 => 2.000e+08 (200000000.0)
2e9 => 2.000e+09 (2000000000.0)
20e9 => 2.000e+10 (20000000000.0)
200e9 => 2.000e+11 (2e+11)
2000e9 => 2.000e+12 (2e+12)
我的问题是-有可能以某种方式“回去”吗?即:
2.000e+07 => 0.02e9
2.000e+08 => 0.2e9
2.000e+09 => 2e9
2.000e+10 => 20e9
2.000e+11 => 200e9
2.000e+12 => 2000e9
。。。我会指定我希望指数是“e+09
”;然后不管我向这个假设函数抛出什么数字,都返回指数中的数值?在每种情况下,是否可以为整个部分和小数部分指定零填充?(即000.0200e9
和020.0000e9
)?
好吧,明白了:
。。。给出:
很抱歉发帖,
干杯!
对于这些年后仍然遇到的人。。。
您可以使用python的Decimal和quantize
https://docs.python.org/3.6/library/decimal.html#decimal.Decimal.quantize
自己格式化(请参见Format Specification Mini-Language):
输出
解释
{:0=8.3f}
表示“零填充,在符号和数字之间填充,总字段宽度8,小数点后3位,定点格式”。相关问题 更多 >
编程相关推荐