# Round numbers down using the NumPy floor() method

The NumPy `floor()` method allows you to round a floating number down to the nearest integer number.

By default, the method will return a number or an array depending on the argument you pass into it:

``````import numpy as np

float_x = 5.5
whole_x = np.floor(float_x)
print(whole_x) # 5.0

print(np.floor(2.3314)) # 2.0
print(np.floor(-8.3314)) # -9.0
``````

The floor method also works for both positive and negative numbers.

You can also pass an array of numbers into the `floor()` method as shown below:

``````numbers = [1.873, 21.2232, 7.624]
print(numbers)  # [1.873, 21.2232, 7.624]

floor_off_numbers = np.floor(numbers)
print(floor_off_numbers)  # [ 1. 21.  7.]
``````

When you pass a value that can’t be rounded down, the `floor()` method will throw an error and stop the running program:

``````print(np.floor("c"))

"""
TypeError: ufunc 'floor' not supported for the input types,
and the inputs could not be safely coerced to any supported types
according to the casting rule ''safe''
"""
``````

The same error above will be triggered when you pass an array with string types.

When you pass a `bool` type as its argument, then the `floor()` method will return the integer representation of the `bool` value (`True` returns `1.0` and `False` returns `0.0`)

``````print(np.floor(True)) # 1.0
print(np.floor(False)) # 0.0
``````

Finally, the NumPy `floor()` method calculates the floor towards the lower value instead of towards zero.

In some computer programs, the floor value is calculated towards zero, where the negative numbers are actually raised to be nearer to zero:

``````floor(-3.4) = -3 # floor towards zero
floor(-5.2) = -6 # floor towards the lower value
``````

The `floor()` method calculates the floor towards the lower value. If you want to calculate the floor towards zero, you need to use the `fix()` method.

Now you’ve learned how the NumPy `floor()` method works. Good work! 👍

### Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.