Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to round to two decimal places in Python

Getting Started

Let's begin with a simple question. What is rounding? In our daily life, we often encounter situations where we need to round off numbers to make them simpler or easier to work with. For example, if you go shopping and the total cost is $9.99, you might round it up to $10 for simplicity. This is the concept of rounding - making a number simpler while keeping its value close to what it was.

Now, how can we apply this concept in Python? Specifically, how can we round numbers to two decimal places? That's what we'll be exploring in this blog. Don't worry if you're new to programming, we'll break everything down into simple, easy-to-understand concepts.

The Basics of Python Rounding

In Python, we have a built-in function named round(). This function takes two parameters: the number you want to round and the number of decimal places. Just like you would round $9.99 up to $10, Python can round numbers for you.

Here's a quick example:

number = 9.99
rounded_number = round(number)
print(rounded_number)

In this example, 9.99 is rounded to 10. We didn't specify a number of decimal places, so Python rounds to the nearest whole number.

Rounding to Two Decimal Places

But what if we want to round to two decimal places? In that case, we can pass in a second argument to the round() function. This argument tells Python how many decimal places we want to round to.

Here's how it works:

number = 3.14159
rounded_number = round(number, 2)
print(rounded_number)

In this example, 3.14159 is rounded to 3.14. We told Python to round to two decimal places by passing 2 as the second argument to the round() function.

Understanding Python's Rounding Logic

Python's round() function uses "round half to even" rounding, also known as "bankers' rounding." This might be a little different from the rounding you learned in school.

Most of us learned to round up if the number to the right of our rounding place is 5 or more, and round down if it's less than 5. For example, using this method, both 1.5 and 1.6 would round to 2.

However, in Python, if the number to the right is exactly 5, and the place value at the rounding place is even, Python rounds down instead of up. This is done to minimize the overall error when rounding many numbers. For example, in Python, 1.5 rounds to 1, not 2.

Here's an example to illustrate this:

print(round(1.5))  # Outputs: 1
print(round(2.5))  # Outputs: 2

Handling Edge Cases

What happens when we try to round a number that doesn't have two decimal places? For instance, what if we have the number 3.1 and we want to round it to two decimal places?

In Python, the round() function handles this gracefully. It simply leaves the number as it is, without adding any additional decimal places. So round(3.1, 2) would result in 3.1.

Here's the code:

number = 3.1
rounded_number = round(number, 2)
print(rounded_number)  # Outputs: 3.1

This is a sensible approach because it avoids introducing any false precision into our number.

Conclusion

Rounding numbers is like shaping a piece of clay. When you round numbers, you are molding them into a form that is simpler, yet still retains their essence. Just like a potter shapes clay into a beautiful pot, you can use Python's round() function to shape your numbers into a more convenient form.

Python makes rounding easy with the round() function. Whether you're rounding to the nearest whole number or to a specific number of decimal places, Python has you covered.

The key is to remember how Python's rounding works. It uses "round half to even" rounding, which might be a bit different from what you learned in school. But once you get the hang of it, you'll find that it's a powerful tool to have in your programming toolkit.

So go ahead, give it a try. Start shaping your numbers today!