2017-08-15 7 views
1

科学的表記3.67E+17にあるWebページから値を取得しようとしていて、それをフォーム0.367E+18に変換しようとしています。または、科学記法が0.367E+18の場合、その値を正確に取得します。私はウェブページを開いてその部分がどこにあるのか見つけ出すことができましたが、自分自身を自分が望む形に変換することができませんでした。Pythonで指数の上昇力を変更するにはどうすればよいですか?

私ははるかにかかわらず、これを得た:私は、左または右のいずれか、シフトする必要がありますどのように多くの小数点以下の桁を把握することができました

lsF = "3.18E+20" 
int(lsF[lsF.find("E")+2:]) - 18 

、しかし、どのように私は実際にそれらをシフトしていますか?

+0

のための新しい仮数もなぜあなたはE' 'の位置に '2'を追加している10 – Barmar

+0

で仮数を指数に1を追加し、分割しますか?正または負の指数であるかどうかを知るために '+'または '-'が必要なので、' 1'を追加するだけです。 – Barmar

+0

@JohnColeman 'format()'は、指数表記法を使用するときに小数点以下の桁数を制御できますか? – Barmar

答えて

2
lsF = "3.18E+20" 
ePos = lsF.find("E") 
if (ePos): 
    mantissa = float(lsF[:ePos]) 
    exponent = int(lsF[ePos+1:]) 
else: 
    mantissa = float(lsF) 
    exponent = 0 
shift = 18 - exponent 
result = mantissa/10**shift 

resultは、指数18

関連する問題