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