Pythonでフロアを取得する2つの方法を見つけました。
3.1415 // 1
と
import math
math.floor(3.1415)
最初のアプローチの問題は、float(つまり3.0
)を返すことです。2番目のアプローチは、不器用で長すぎると感じます。
Pythonでフロアを取るための代替ソリューションはありますか?
Pythonでフロアを取得する2つの方法を見つけました。
3.1415 // 1
と
import math
math.floor(3.1415)
最初のアプローチの問題は、float(つまり3.0
)を返すことです。2番目のアプローチは、不器用で長すぎると感じます。
Pythonでフロアを取るための代替ソリューションはありますか?
数値が正である限りint
、次の整数に切り捨てるために単純に変換できます。
>>> int(3.1415)
3
ただし、負の整数の場合、これは切り上げられます。
float で int() を呼び出して、下位の int にキャストできます (明らかにフロアではありませんが、よりエレガントです)。
int(3.745) #3
または、フロア結果で int を呼び出します。
from math import floor
f1 = 3.1415
f2 = 3.7415
print floor(f1) # 3.0
print int(floor(f1)) # 3
print int(f1) # 3
print int(f2) # 3 (some people may expect 4 here)
print int(floor(f2)) # 3
2番目のアプローチは進むべき道ですが、それを短くする方法があります。
from math import floor
floor(3.1415)
フロアを取ることと int にキャストすることは、負の数では同じではないことに注意してください。本当に床を整数にしたい場合は、math.floor() を呼び出した後に int にキャストする必要があります。
>>> int(-0.5)
0
>>> math.floor(-0.5)
-1.0
>>> int(math.floor(-0.5))
-1
int
必要ない場合はキャストしてくださいfloat
int(3.1415 // 1)