2016-04-27 12 views
-2

2e-3の代わりに2 * 10^-3のような浮動小数点を印刷することは可能ですか?2e-3を2 * 10^-3としてPythonに表示

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

が機能しませんでした。

+0

から先頭の「+」とゼロを削除することができ、特殊なケースを処理したい場合は 'sのを交換してください= str(2e-3) 'から' s = str( '2e-3') 'に変更します。 – BlackMamba

+0

印刷場所? 'print'を使ってコンソールに? – Francesco

答えて

-1

間違えたのは、置き換えがsを変更しないことです。したがって、s = s.replace...はすべてを修正します。プリント部分はオプションです。最後に、それは単に、次のようになります。

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

出力で:

2*10^-3 
+0

あなたは '' 0.002'replace( 'e'、 '* 10 ^') '何とか' 2 * 10^-3'を生成していると言っていますか?それはしません。あなたの答えはあなた自身の質問に答えません。 – vaultah

-3

Plase s = str('2e-3')を使用しています。

s = str(2e-3)については、2e-3と計算され、結果はフラットになり、結果はstringに変換されます。

1

使用形式は、科学的表記で数値を表す文字列を取得し、その後の「e」を置換する

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

{:.2e}.2あなたは0.00 * 10^+ 00を得るany_number==0かのように、2つの小数点以下を要求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 
関連する問題