2016-11-06 13 views
3

inf-infをPython 2.7のintとして定義する方法は不思議です。私は試しましたが、inf-inffloatとしてしか動作しません。Python 2.7で無限大を整数として表現する

a = float('-inf') # works 
b = float('inf') # works 

c = int('-inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf' 
d = int('inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf' 
+3

整数として無限大を表すことはできませんが、浮動小数点表現には特殊なケースがあります。浮動小数点表現を使用する必要があります。 – Jezzamon

+0

@Jezzamon、intを表すためにinf/-infの浮動小数点表現を使用していますか?どうやって見せてくれますか? 'type(float)'!= 'type(int)'、floatをintに変換するための明示的な型変換が必要ですか? –

+0

@Jezzamon、私は 'double( 'inf')と' double( ' - inf')のどちらもうまくいかないと思ったのですか? –

答えて

7


は、Pythonでの整数として無限大を表現する方法はありませんコメント

に言われた要約します。これは他の多くの言語の動作と一致します。しかし、Pythonの動的タイピングシステムのために、整数の代わりにfloat('inf')を使用することができます。これは、期待通りに動作します。

無限大を作成する限り、精度が異なる浮動小数点数にはfloatという用語とdoubleという用語を使用するJavaのように、floatという浮動小数点型が1つだけあります。 Pythonではfloating point numbers usually use double-precisionなので、それらはJavaでdouble型と同じように動作します。

関連する問題