python python-3.x math floor

python - Tomando el piso de un flotador



subplot python title (5)

El segundo enfoque es el camino a seguir, pero hay una forma de acortarlo.

from math import floor floor(3.1415)

He encontrado dos maneras de tomar pisos en Python:

3.1415 // 1

y

import math math.floor(3.1415)

El problema con el primer enfoque es que devuelve un flotante (a saber, 3.0 ). El segundo enfoque se siente torpe y demasiado largo.

¿Hay soluciones alternativas para tomar pisos en Python?


Equípelo en int si no quieres un float

int(3.1415 // 1)


Puedes llamar a int () en el float para lanzar al int inferior (no obviamente el piso pero más elegante)

int(3.745) #3

Alternativamente, llama a int en el resultado del piso.

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


Siempre que sus números sean positivos, simplemente puede convertir a un int para redondear al siguiente entero:

>>> int(3.1415) 3

Para enteros negativos, esto redondeará, sin embargo.


Tenga en cuenta que tomar la palabra y lanzar al int no son lo mismo con números negativos. Si realmente desea el piso como un entero, debe convertirlo a int después de llamar a math.floor ().

>>> int(-0.5) 0 >>> math.floor(-0.5) -1.0 >>> int(math.floor(-0.5)) -1