Pythonで浮動小数点無限リテラルを入力するにはどうすればよいですか?
私が聞いたことがある
inf = float('inf')
ポータブルではありません。ということで、次のようにすすめてもらいました。
inf = 1e400
これらは標準ですか、それとも移植可能ですか? ベストプラクティスとは?
Pythonで浮動小数点無限リテラルを入力するにはどうすればよいですか?
私が聞いたことがある
inf = float('inf')
ポータブルではありません。ということで、次のようにすすめてもらいました。
inf = 1e400
これらは標準ですか、それとも移植可能ですか? ベストプラクティスとは?
Python 2.6では、CPU がサポートしていれば移植可能です。
float() 関数は、文字列 nan を IEEE 754 Not A Number 値に変換し、+inf と -inf を正または負の無限大に変換します。これは、IEEE 754 セマンティクスを備えたすべてのプラットフォームで機能します。
float('inf')
プラットフォーム間で文字列出力が異なる場合、Python 2.5 に移植できないのと同様に移植できません。2.6 以降float('inf')
では、IEEE-754 準拠のプラットフォームで動作することが保証されています (参照: http://www.python.org/dev/peps/pep-0754/ )。
(そして、推奨は 1e400 だけでなく、1e30000 の範囲にあるようです。)
おそらく、あなたはこのようなことをすることができます
try:
inf = float('inf')
except: # check for a particular exception here?
inf = 1e30000