是否可以在Python中打印浮点数,如2 * 10 ^ -3而不是2e-3?
s = str(2e-3)
s.replace("e","*10^")
没用。
答案 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
。