Pythonの最大フロートはいくつですか?


回答:


273

floatを見てsys.float_info

>>> import sys
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)

具体的には、sys.float_info.max

>>> sys.float_info.max
1.7976931348623157e+308

それが十分に大きくない場合、常に正の無限大があります

>>> infinity = float("inf")
>>> infinity
inf
>>> infinity / 10000
inf

longタイプは、無制限の精度を持っているので、私はあなたが使用可能なメモリによってのみ制限されていると思います。


1
実際に、私はsys.maxintは自分のアプリケーションに非常に十分である見つける
ladyfafa

sys.float_infov2.6から利用できるようです。v2.3-5はどうですか?
アレクセイフェドトフ2015年

1
注sys.float_info.minは、「最小の正の正規化された浮動小数点数」として定義されています。より小さな非正規化値が可能です5e-324
ボブスタイン

1
どちらも非常に便利です。infすべてのものについてpython、およびfloat_info.max以前のバージョンが機能しない場合の回避策として、たとえばtime.sleep(float("inf"))許可されていません:(
Dima Tisnek

2
@ladyfafa:sys.maxintがPython 3で廃止されました。他の回答のコメントも参照してください。また、stackoverflow.com
Joachim Wagner

16

sys.maxintは、Pythonでサポートされる最大の整数ではありません。Pythonの通常の整数型でサポートされている最大の整数です。


10
+1これは重要です。Py3kでは、ほとんど意味がありません-Pythonが(透過的に!)基になるデータ型をに変更する時点longです。
カトリエル

6
@katrielalex:sys.maxintPython 3でさえ定義されていませんsys.maxsize。これはと呼ばれ、おそらくPython 2でも推奨されます。
スコットグリフィス

14
@スコット・グリフィス:まったく違います。 sys.maxsize(Python 2.6で導入)とsys.maxint2つの異なるものです。1つ目は、コレクションで許可されるオブジェクトの最大数(リストの最大サイズ、dictなど)を示し、C size_t型の符号付きバージョンに対応します。2番目は、intタイプがに切り替わるポイントであり、longCの最大値ですlong。一部のプラットフォームでは、2つの値が異なります。たとえば、64ビットWindowsでは、sys.maxsizeis 2**63-1sys.maxintis 2**31-1です。
Mark Dickinson

@Mark Dickinson:修正してくれてありがとう-私はそれらがこれまでと異なる可能性があることに気づいていませんでした(Snow Leopardの64ビットPythonでは両方とも2**63-1)。
スコットグリフィス


7

numpyを使用している場合は、dtype ' float128 'を使用して、10e + 4931の最大浮動小数点を取得できます。

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.