2016-04-19 7 views
0

私のプログラムでは大きな数字が表示されています。このため、任意の数値を10の累乗(E記法)に変換します。私は思いついたアイデアを試しましたが、次のようなエラーが表示されます:Python任意の数を10の累乗に変換します(E記法)

OverflowError: cannot convert float infinity to integer 

私はどのように成功しますか?

+0

どのようなコードを使用しましたか? –

+0

修正を決定するためにエラーをスローするコードの一部が必要です。 –

答えて

3

Python floatでは通常、倍精度のIEEE-754浮動小数点数です。 11の指数ビットを持ちますが、これは実際には最大で〜2^1024の数を表すことができることを意味します。あなたはそれよりも大きい結果持っていれば:Pythonは代わりにIEEE 754無限大に変換されます:

>>> 1e308 
1e+308 
>>> 1e309 
inf 

したがって、この大きなはfloatとして表現することができません数を。


これ以上の数値は、Pythonでは10進数または整数/ longとして表現できます。

関連する問題