# How to Round a Number Down in Python? 6 Easy Ways

Problem Formulation: Given a float number. How to round the float down in Python?

Here are some examples of what you want to accomplish:

• `42.52 --> 42`
• `21.99999 --> 22`
• `-0.1 --> -1`
• `-2 --> -2`

Solution: If you have little time, here’s the most straightforward answer:

To round a positive or negative number `x` down in Python, apply integer division `//` to `x` and divide by `1`. Specifically, the expression `x//1` will first perform normal float division and then throw away the remainder—effectively “rounding `x` down”.

In general, there are multiple ways to round a float number `x` down in Python: π

1. Vanilla Python: The expression `x//1` will first perform normal division and then skip the remainder—effectively “rounding `x` down”.
2. Round down: The `math.floor(x)` function rounds number `x` down to the next full integer.
3. Round down (float representation): Alternatively, `numpy.floor(x)` rounds down and returns a float representation of the next full integer (e.g., `2.0` instead of `2`).
4. Round up: The `math.ceil(x)` function rounds number `x` up to the next full integer.
5. Round up and down: The Python built-in `round(x)` function rounds `x` up and down to the closest full integer.

Let’s dive into each of those and more options in the remaining article. I guarantee you’ll get out of it having learned at least a few new Python tricks in the process!

## Method 1: Integer Division (x//1)

The most straightforward way to round a positive or negative number `x` down in Python is to use integer division `//` by `1`. The expression `x//1` will first perform normal division and then skip the remainder—effectively “rounding `x` down”.

For example:

• `42.52//1 == 42`
• `21.99//1 == 21`
• `-0.1//1 == -1`
• `-2//1 == -2`

This trick works for positive and negative numbers—beautiful isn’t it? π»

Here are a couple of Python code examples:

```def round_down(x):
return x//1

print(round_down(42.52))
# 42

print(round_down(21.99999))
# 21

print(round_down(-0.1))
# -1

print(round_down(-2))
# -2
```

π Info: The double-backslash `//` operator performs integer division and the single-backslash `/` operator performs float division. An example for integer division is `40//11 = 3`. An example for float division is `40/11 = 3.6363636363636362`.

Feel free to watch the following video for some repetition or learning:

## Method 2: math.floor()

To round a number down in Python, import the `math` library with `import math`, and call `math.floor(number)`.

The function returns the floor of the specified `number` that is defined as the largest integer less than or equal to `number`.

π‘ Note: The `math.floor()` function correctly rounds down floats to the next-smaller full integer for positive and negative integers.

Here’s a code example that rounds our five numbers down to the next-smaller full integer:

```import math

print(math.floor(42.52))
# 42

print(math.floor(21.99999))
# 21

print(math.floor(-0.1))
# -1

print(math.floor(-2))
# -2
```

The following video shows the `math.floor()` as well as the `math.ceil()` functions — feel free to watch it to gain a deeper understanding:

## Method 3: np.floor()

To round a number down in Python, import the NumPy library with `import numpy as np`, and call `np.floor(number)`.

β Recommended: How to Install NumPy?

The function returns the floor of the specified `number` that is defined as the largest integer less than or equal to `number`.

Here’s an example:

```import numpy as np

print(np.floor(42.52))
# 42.0

print(np.floor(21.99999))
# 21.0

print(np.floor(-0.1))
# -1.0

print(np.floor(-2))
# -2.0
```

Both `math.floor()` and `np.floor()` round down to the next full integer. The difference between `math.floor()` and `np.floor()` is that the former returns an integer and the latter returns a float value.

## Method 4: int(x)

Use the `int(x)` function to round a positive number `x>0` down to the next integer. For example, `int(42.99)` rounds `42.99` down to the answer `42`.

Here’s an example for positive numbers where `int()` will round down:

```print(int(42.52))
# 42

print(int(21.99999))
# 21
```

However, if the number is negative, the function `int()` will round up! Here’s an example for negative numbers:

```print(int(-0.1))
# 0

print(int(-2))
# -2
```

Before I show you how to overcome this limitation for negative numbers, feel free to watch my explainer video on this function here:

## Method 5: int(x) – bool(x%1)

You can also use the following vanilla Python snippet to round a number `x` down to the next full integer:

• If `x` is positive, round down by calling `int(x)`.
• If `x` is negative, round up by calling `int(x) - bool(x%1)`.

Explanation: Any non-zero expression passed into the `bool()` function will yield `True` which is represented by integer 1.

The modulo expression `x%1` returns the decimal part of `x`.

• If it is non-zero, we subtract `bool(x%1) == 1`, i.e., we round down.
• If it is zero (for whole numbers), we subtract `bool(x%1) == 0`, i.e., we’re already done.

Here’s what this looks like in a simple Python function:

```def round_down(x):
if x<0:
return int(x) - bool(x%1)
return int(x)

print(round_down(42.52))
# 42

print(round_down(21.99999))
# 21

print(round_down(-0.1))
# -1

print(round_down(-2))
# -2
```

Alternatively, you can use the following slight variation of the function definition:

```def round_down(x):
if x<0:
return int(x) - int(x)!=x
return int(x)```

## Method 6: round()

π‘ This method is probably not exactly what you want because it rounds a number up and down, depending on whether the number is closer to the smaller or larger next full integer. However, I’ll still mention it for comprehensibility.

Pythonβs built-in `round()` function takes two input arguments:

• a `number` and
• an optional `precision` in decimal digits.

It rounds the number to the given precision and returns the result. The return value has the same type as the input numberβor integer if the `precision` argument is omitted.

Per default, the precision is set to 0 digits, so `round(3.14)` results in `3`.

Here are three examples using the `round()` function—that show that it doesn’t exactly solve our problem.

```import math

print(round(42.42))
# 42

print(round(21.00001))
# 21

print(round(-0.1))
# 0
```

Again, we have a video on the `round()` function — feel free to watch for maximum learning!

## Python One-Liners Book: Master the Single Line First!

Python programmers will improve their computer science skills with these useful one-liners.

Python One-Liners will teach you how to read and write “one-liners”: concise statements of useful functionality packed into a single line of code. You’ll learn how to systematically unpack and understand any line of Python code, and write eloquent, powerfully compressed Python like an expert.

The book’s five chapters cover (1) tips and tricks, (2) regular expressions, (3) machine learning, (4) core data science topics, and (5) useful algorithms.

Detailed explanations of one-liners introduce key computer science concepts and boost your coding and analytical skills. You’ll learn about advanced Python features such as list comprehension, slicing, lambda functions, regular expressions, map and reduce functions, and slice assignments.

You’ll also learn how to:

• Leverage data structures to solve real-world problems, like using Boolean indexing to find cities with above-average pollution
• Use NumPy basics such as array, shape, axis, type, broadcasting, advanced indexing, slicing, sorting, searching, aggregating, and statistics
• Calculate basic statistics of multidimensional data arrays and the K-Means algorithms for unsupervised learning
• Create more advanced regular expressions using grouping and named groups, negative lookaheads, escaped characters, whitespaces, character sets (and negative characters sets), and greedy/nongreedy operators
• Understand a wide range of computer science topics, including anagrams, palindromes, supersets, permutations, factorials, prime numbers, Fibonacci numbers, obfuscation, searching, and algorithmic sorting

By the end of the book, you’ll know how to write Python at its most refined, and create concise, beautiful pieces of “Python art” in merely a single line.

Get your Python One-Liners on Amazon!!