How to Round Up a Number in Python

Syed Moiz Haider Feb 02, 2024
  1. Use the math.ceil() Function to Round Up a Number in Python 2.x
  2. Use Simple Arithmetic to Round Up a Number in Python
  3. Use Floor Division Operator to Round Up a Number in Python
  4. Use the numpy.ceil() Method to Round Up a Number in Python
How to Round Up a Number in Python

This tutorial explains different methods to explain the concept of rounding up a number. There are various ways to round up a number in the correct way. For example, a number can be rounded using the math module provided by Python, using the NumPy module, and so on. The tutorial will explain these different methods using example code snippets.

Use the math.ceil() Function to Round Up a Number in Python 2.x

If you are using the Python 2.x version, you can use the math.ceil() function to round up a number correctly. The ceil() function is provided by the math library of Python. So we need to import the math library first. The ceil function takes the number that needs to be rounded. It can take an expression and round the resulting number as per the results.

However, it should be noted that in Python 2.x, int/int produces int, and int/float results in a float. So we need to give one of the values in float to the ceil function to get accurate results. If both values of an expression in the ceil function is an integer, it can produce wrong results.

An example code to illustrate the concept of how to use math.ceil() to round up a number in Python 2.x is given below.

import math

print(math.ceil(27 / 4))
print(math.ceil(27.0 / 4))

Output:

6
7

Use Simple Arithmetic to Round Up a Number in Python

A number can also be rounded up by using simple arithmetic in Python. This method is applicable to all versions of Python. It casts the first expression into an integer data type and adds 0 or 1 value based on the result of another expression. Other expression finds the modulus of the number with the same denominator and checks if it is greater than 0 or not. If the remainder is greater than 0, it adds one to the first expression, and if it is false, it adds 0 to the first expression.

An example code is given below to explain how to use simple arithmetic to round up a number in Python without importing the math library.

n = 22
div = 5
print(int(n / div) + (n % div > 0))

Output:

5

Use Floor Division Operator to Round Up a Number in Python

The symbol for the floor division operator is //. It works in the same way as a simple division operator, /, but it also rounds the number down. So, It is usually used to round down the number in Python. However, we can modify its use to round up a number as well. We can do so by negating the answer by dividing negative numbers. It will save the cost of any import or use of float and any other conditions. It works with the integers only.

An example code is given below to elaborate on how to use the floor division operator to round up a number in Python.

n = 22
div = 5
answer = -(-n // div)
print(answer)

Output:

5

Similarly, we can round up a number by adding the denominator to the numerator and subtracting 1 from it. Then the whole expression will be floor divided with the denominator. It is a straightforward method that does not involve any floating points and external modules also. An example code of this method is given below.

numerator = 22
denominator = 5
answer = (numerator + denominator - 1) // denominator
print(answer)

Output:

5

Use the numpy.ceil() Method to Round Up a Number in Python

Another method to round up a number is to use the numpy.ceil() method. First, we need to import the NumPy module in the script and then use the ceil() method to round up a number. The return type of the ceil() function is float, so even if the expression is in integers, the output will be in the float. The output can be explicitly cast to integer data type by explicitly casting it to be an integer.

An example code of this method to round up a number in Python is given below.

import numpy as nmp

n = 22
div = 5
answer = n / div
print(nmp.ceil(answer))
print(int(nmp.ceil(answer)))

Output:

5.0
5
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Related Article - Python Number