Pythonでfloatを整数に変換する最も安全な方法は?


Answers

それを釘付けにするint(your non integer number)を使用してください。

print int(2.3) # "2"
print int(math.sqrt(5)) # "2"
Question

Pythonの数学モジュールにはfloorceilような便利な関数が含まれています。 これらの関数は浮動小数点数をとり、その下または上の最も近い整数を返します。 しかし、これらの関数は答えを浮動小数点数として返します。 例えば:

import math
f=math.floor(2.3)

今度はfが返す:

2.0

丸め誤差のリスクを実行することなく(例えば浮動小数点が1.99999に相当する場合など)、この浮動小数点から整数を取得する最も安全な方法は何ですか?あるいは、おそらく別の関数を使用する必要がありますか?




文字列浮動小数点を整数に変換する必要がある場合は、このメソッドを使用できます。

例: '38.0'

これをintに変換するには、float型とint型にキャストできます。 これは、float文字列または整数文字列でも機能します。

>>> int(float('38.0'))
38
>>> int(float('38'))
38

:小数点以下の数字は削除されます。

>>> int(float('38.2'))
38



math.floorは常に整数を返すので、 int(math.floor(some_float))は決して丸め誤差を導入しません。

ただし、丸め誤差はすでにmath.floor(some_large_float)導入されている可能性があります。 (浮動小数点数で格納すると、数値が大きいほど精度が低下することがあります)。




これまでの2つの結果を組み合わせると、次のようになります。

int(round(some_float))

これは、フロートをかなり信頼できる整数に変換します。




Related