在Python中将2e-3显示为2 * 10 ^ -3

时间:2016-04-27 08:43:59

标签: python

是否可以在Python中打印浮点数,如2 * 10 ^ -3而不是2e-3?

s = str(2e-3)
s.replace("e","*10^")

没用。

3 个答案:

答案 0 :(得分:1)

使用format获取以科学计数法表示数字的字符串,然后替换' e'

 s = '{:.2e}'.format(any_number).replace("e", "*10^")

.2中的{:.2e}要求两位小数,所以如果any_number==0得到0.00 * 10 ^ + 00,则为0.002,2.00 * 10 ^ -03。

如果你想处理特殊情况,你可以将格式化的字符串拆分为尾数和指数字符串,然后,例如,删除一个前导' +'和指数为零

 ms,es='{:.2e}'.format(any_number).split('e')
 if len(es)==3 and es[1]=='0': es = es[0] + es[2]
 es = es.replace('+','')
 s = ms + '*10^' + es

答案 1 :(得分:-1)

错误是替换不会改变s。所以s = s.replace...修复了一切。最后它应该看起来像这样,打印部分是可选的:

s = str("2e-3")
s = s.replace("e", "*10^")
print(s)

输出:

2*10^-3

答案 2 :(得分:-3)

使用s = str('2e-3')

对于s = str(2e-3),我会计算2e-3,结果将是一个标志,然后将结果转换为string