45

Pythonでフロアを取得する2つの方法を見つけました。

3.1415 // 1

import math
math.floor(3.1415)

最初のアプローチの問題は、float(つまり3.0)を返すことです。2番目のアプローチは、不器用で長すぎると感じます。

Pythonでフロアを取るための代替ソリューションはありますか?

4

6 に答える 6

70

数値が正である限りint、次の整数に切り捨てるために単純に変換できます。

>>> int(3.1415)
3

ただし、負の整数の場合、これは切り上げられます。

于 2012-02-22T23:42:16.887 に答える
14

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

http://docs.python.org/library/functions.html#int

于 2012-02-22T23:44:07.700 に答える
6

2番目のアプローチは進むべき道ですが、それを短くする方法があります。

from math import floor
floor(3.1415)
于 2012-02-22T23:39:15.060 に答える
5

フロアを取ることと int にキャストすることは、負の数では同じではないことに注意してください。本当に床を整数にしたい場合は、math.floor() を呼び出した後に int にキャストする必要があります。

>>> int(-0.5)
0
>>> math.floor(-0.5)
-1.0
>>> int(math.floor(-0.5))
-1
于 2013-05-28T21:33:45.230 に答える
4

int必要ない場合はキャストしてくださいfloat

int(3.1415 // 1)
于 2012-02-22T23:41:01.993 に答える