python float 範囲 - Pythonの整数除算で浮動小数点が得られる



2 Answers

おっと、すぐに見つかった2//2

Question

python float 桁数

Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2/2
1.0

これは意図されていますか? int/int=int返す以前のバージョンを強く思い出していますか? 私は何をすべきですか、新しい除算演算子があるか、常にキャストする必要がありますか?




受け入れられた答えにはすでにPEPています。 私はちょうどPEP全体を読まずに何が起こっているのかに関心のある人のための場面の裏側を素早く見たいと思っています。

Pythonは+-*/などの演算子を特殊関数にマップします。例えばa + bは次のようになります。

a.__add__(b)

Python 2のディビジョンに関しては、デフォルトでは/__div__マップされ、結果は入力タイプ( intfloat )に依存します。

Python 2.2では、 __future__フィーチャdivision導入され、ディビジョンセマンティクスが次のように変更されました(TL; PEP 238のDR)。

  • / __truediv__マップされ__truediv__これは「分割の数学的結果の合理的近似を返す」必要があります(PEP 238からの引用)
  • // __floordiv__にマップし__floordiv__ 。これは/

Python 3.0では、PEP 238の変更がデフォルトの動作になりました__div__のオブジェクトモデルでは、特別なメソッド__div__ました。

Python 2とPython 3で同じコードを使用する場合は、

from __future__ import division

/// PEP 238のセマンティクスに固執する。






Related