# Round a number to the nearest 100 in Python Last updated: Jul 11, 2022 Photo from Unsplash

## Round a number to the nearest 100 in Python#

Use the `round()` function to round a number to the nearest 100, e.g. `result = round(num, -2)`. When the `round()` function is called with a second argument of `-2`, it rounds to the closest multiple of one hundred.

main.py
```Copied!```import math

# ✅ Round number to nearest 100

num_1 = 237
result_1 = round(num_1, -2)
print(result_1)  # 👉️ 200

num_2 = 278
result_2 = round(num_2, -2)
print(result_2)  # 👉️ 300

# --------------------------------------

# ✅ Round number UP to nearest 100

def round_up_to_nearest_100(num):
return math.ceil(num / 100) * 100

print(round_up_to_nearest_100(311))  # 👉️ 400
print(round_up_to_nearest_100(1))  # 👉️ 100

# --------------------------------------

# ✅ Round number DOWN to nearest 100

def round_down_to_nearest_100(num):
return math.floor(num / 100) * 100

print(round_down_to_nearest_100(546))  # 👉️ 500
print(round_down_to_nearest_100(599))  # 👉️ 500
``````

We used the `round()` function to round a number to the nearest 100.

The round function takes the following 2 parameters:

NameDescription
`number`the number to round to `ndigits` precision after the decimal
`ndigits`the number of digits after the decimal, the number should have after the operation (optional)
When `ndigits` is a negative number, the `round()` function rounds to the left of the decimal.

If `ndigits` is `-1`, it rounds to the closest multiple of `10`. When `ndigits` is `-2`, the function rounds to the nearest `100`, etc.

main.py
```Copied!```print(round(346, -1))  # 👉️ 350
print(round(346, -2))  # 👉️ 300
``````

## Round a number Up to the nearest 100 in Python#

To round a number up to the nearest 100:

1. Call the `math.ceil()` method passing it the number divided by `100`.
2. Multiply the result by `100`.
3. The result of the calculation is the number rounded up to the nearest `100`.
main.py
```Copied!```import math

def round_up_to_nearest_100(num):
return math.ceil(num / 100) * 100

print(round_up_to_nearest_100(311))  # 👉️ 400
print(round_up_to_nearest_100(1))  # 👉️ 100
``````

The math.ceil method returns the smallest integer greater than or equal to the provided number.

main.py
```Copied!```import math

print(math.ceil(123.001))  # 👉️ 124
print(math.ceil(123.999))  # 👉️ 124
``````

If the passed in number has a fractional part, the `math.ceil` method rounds the number up.

Here is a step-by-step example of rounding a number up to the nearest hundred.

main.py
```Copied!```import math

print(346 / 100)  # 👉️ 3.46
print(600 / 100)  # 👉️ 6.0

print(math.ceil(346 / 100))  # 👉️ 4
print(math.ceil(600 / 100))  # 👉️ 6

print(math.ceil(346 / 100) * 100)  # 👉️ 400
print(math.ceil(600 / 100) * 100)  # 👉️ 600
``````
We first divide the number by `100` and then multiply with `100` to shift 2 decimal places to the right and left, so that `math.ceil()` works on the hundreds.

This is a two step process:

1. Divide the number by `100` and round the result up to the nearest integer.
2. Multiply the result by `100` to get the number rounded up to the nearest `100`.

## Round a Number Down to the nearest 100 in Python#

To round a number down to the nearest 100:

1. Call the `math.floor()` method passing it the number divided by `100`.
2. Multiply the result by `100`.
3. The result of the calculation is the number rounded down to the nearest `100`.
main.py
```Copied!```import math

def round_down_to_nearest_100(num):
return math.floor(num / 100) * 100

print(round_down_to_nearest_100(546))  # 👉️ 500
print(round_down_to_nearest_100(599))  # 👉️ 500
print(round_down_to_nearest_100(775))  # 👉️ 700
``````

The math.floor method returns the largest integer less than or equal to the provided number.

main.py
```Copied!```import math

print(math.floor(15.001))  # 👉️ 15
print(math.floor(15.999))  # 👉️ 15
``````
If the passed in number has a fractional part, the `math.floor` method rounds the number down.

Here is a step-by-step example of rounding a number down to the nearest 100.

main.py
```Copied!```print(488 / 100)  # 👉️ 4.88
print(251 / 100)  # 👉️ 2.51

print(math.floor(488 / 100))  # 👉️ 4
print(math.floor(251 / 100))  # 👉️ 2

print(math.floor(488 / 100) * 100)  # 👉️ 400
print(math.floor(251 / 100) * 100)  # 👉️ 200
``````
We first divide the number by `100` and then multiply with `100` to shift 2 decimal places to the right and left, so that `math.floor()` works on the hundreds.

This is a two step process:

1. Divide the number by `100` and round the result down to the nearest integer.
2. Multiply the result by `100` to get the number rounded down to the nearest `100`.
I wrote a book in which I share everything I know about how to become a better, more efficient programmer. You can use the search field on my Home Page to filter through all of my articles.