Programs

Round function in Python

Introduction to Python

Python is a high-level programming language. It is an open-source language which means it can be accessed by anyone. It is an extensively used language that is becoming very popular these days due to its global usage throughout the companies. Companies prefer using Python because it has the capacity to gain an accurate and deep understanding of the data. Python has many powerful ways for the storage and manipulation of the dataset. In this language, there is no need to declare a variable or assign any type to a variable, as it will be assigned automatically once you type a variable which means it is a dynamic, typed language that automatically differentiates amongst different values being assigned. Numbers with a dot will be treated as type “float” and numbers without any dot will be treated as type “integer”.  Usage of such language provides many benefits, one of them being that you don’t need to bother about type conversions. Python has many advantages in comparison to other programming languages:  

  • It has a simple syntax which is similar to the English language.  
  • It also allows writing a few lines of the code, which is very helpful for the developers, instead of writing big codes in this language that can be done with a few lines of syntax.  
  • Python is an object-oriented language.  
  • Indentation is very important in this language. Indentation is helpful in the readability of the code and helps to understand how the block of code will be executed. All blocks of code need an indentation. There is no need for any curly braces and endif statements like other programming languages.  

Check out our data science courses to upskill yourself.

What can be done by Python? 

  • Python has many applications. Some of them are web development, software development and system scripting.  
  • Python is useful in the creation of web applications.  
  • Python can be used to create workflows. It has the property of getting connected to the database system and then it can read the files in the system and perform modification on these files.  
  • Python is very useful when we need to deal with big data as it can perform various complex mathematics whenever required.  
  • Python helps the engineers to turn a concept into a functioning item. 

Python Built-in Functions

We are familiar with the term Big Data and data science playing a vital role in today’s world.  Many organizations are working on big data to influence their data to make good decisions based on the analysis or prediction done from the data that was unused in the past. Python is being used by companies to perform various functions on the data to find patterns and make good decisions based on that. The dataset can be biased and an analyst has to keep this in mind while dealing with the data to avoid any costly mistakes. So, we use various techniques to avoid any mistakes in the data, which can create any sort of disturbance in the model building. For that, we use numerous functions and a few of them are Python built in functions.  

Python has some very useful built-in functions for computational purposes. There are various functions like integer division, absolute value, complex numbers and the modulus. One such function is the round(), which comes in very handy while dealing with floating point numbers.  Rounding in Python is different from the one that we come across while performing the arithmetic functions in mathematics. This can be attributed to the fact that while performing normal mathematical calculations, we make use of the decimal system that is based on the number 10, whereas in contrast to this, computers process and store every integer in the binary number format, i.e. “0” and “1”. Thereby, we might not end up seeing the results that we anticipated while making use of the round function in Python. Hence, we must understand that the round function in Python gives output as per a specific rounding strategy, which might not yield the expected result for a particular situation for which it was used. The basic function of the round function is to return a float number.  

Also, Check out all trending Python tutorial concepts in 2024.

Round Function in Python

Python includes an important built-in function called round(). Numbers are rounded off to the required decimal places using this method. 

The nearest integer, which is considered 0, will be used if the desired number of decimal places is not specified.

Syntax

The syntax of the round function in Python is:

round(float_number, number_of_decimals)

where float_number is the ‘float number’ to be rounded.

And, ‘number_of_decimals’ is optional, and it is the number of decimals to be considered during rounding. 

Return value

If the num_of_decimals parameter is provided, it will return a float value, else an integer value. Please note that the value will be rounded to +1 if the number following the decimal point is greater than 5, else it will return the value with the specified number of decimal places.

Code Examples

When the second parameter is not present

print(round(18)) # for integers

print(round(61.6)) # for floating point

print(round(75.5))

print(round(11.4))

Output:

18

62

76

11

When the second parameter is present

print(round(7.665, 2))   # when the (ndigit+1)th digit is =5

print(round(7.676, 2))  # when the (ndigit+1)th digit is >=5

print(round(7.673, 2))  # when the (ndigit+1)th digit is <5

Output:

7.67

7.68

7.67

floor() and ceil() in Python 

  • The floor() method in Python will return the largest integer not greater than a number, i.e. the floor value of a number.
  • The ceil function in Python will return the smallest integer which is greater than or equal to a number, i.e. the ceiling value of a number.

Code Example

import math

number = 6.6

rounded_number = math.floor(number) # rounds down to the nearest integer

print(rounded_number) 

rounded_number = math.ceil(number) # rounds up to nearest integer

print(rounded_number) 

Output:

6

7

Time Complexity

The floor and ceil in Python have identical time complexity, indicating that the original code’s time complexity is also constant. Similar to how the round() method has a constant time complexity, the alternative code’s time complexity is similarly constant.


Auxiliary Space

Because the original code and the alternate code both employ a small number of variables to store the input and the result, the space complexity of both is constant.

Applications Of round() In Python

  • Since a bill’s amount is typically paid in integers, it can be rounded off using the round() function.
  • Scientific data requires a specific format with a set amount of floating and integer digits because it is high-precision data. The round() function can be used to obtain this precision.
  • To be used realistically in engineering applications, theoretical data may need to be modified. In these circumstances, the round() function can assist in rounding off the values for applications.

How Much Impact Rounding Have?  

Presume that you have an eminently good day and you find $100 on the ground. Instead of shelling out all your money at a single stretch, you think of investing some amount in buying shares of multiple stocks.  

And you also know that the value of stocks relies completely on demand and supply. The more people try to buy a particular stock, the more the value of that stock increases gradually.  And the value of stocks can change every second on the basis of their demand in the market.  

Now time for an experiment. Let’s dissemble the value of all our stocks being purchased and then record their fluctuations by a random number every second, somewhere between $0.05 & $0.06. The mentioned variation may not be a very nice value with two decimal places. Consider an example in which the overall value increases by $0.036332 at one second and decreases by $0.022223 at the next second.  

Now, if we need not keep track of the fifth and sixth decimal place, we can make a decision to chop off the digit succeeding third decimal place. This method is well known as truncating the digit. An error can be anticipated here, but by retaining only three decimal places, this error could be of the least importance. To learn this scenario a little more, let’s see how the truncate() function works. 

Say, for example, we have a number n. So, truncate() will work on this number by moving the decimal point towards the right up to three places by multiplying the number n by 1000. After multiplication, we get a new number which is taken as int(). Finally, we divide the number again by 1000 and shift the decimal point towards the left.  

Now, let’s define the primary parameters for the assumption. We will now require two variables, one of them to track the actual value of our stocks once the simulation finish and one for our stocks’ value after we have been trimming to three decimal points at every step.  

We will initialize the variables to 100 with the help of the below syntax:  

And Now the simulation is run for 1,000,000 seconds (11.5 days approx.). The simulation will take place in a loop. It will loop over the range of numbers between 999 and 0. The value will be saved in the variable at each step of the value taken from range(). A random number will be generated between -0.5 to 0.5 at every step of the loop by using random.randn() and this number will be allotted to the randn variable. The value of the investment will now be calculated by adding actual value to randn, and then we will add randn to the truncated value.  We will get the truncated total and this total value will then be truncated by using truncate().  

We observe the variable actual_value after executing the loop; we only lose about $3.55.  However, if we look at the truncated_value, it seems the whole amount has been lost. 

Note: The random.seed() function that has been used in the example mentioned above is involved in seeding the pseudo_random number. So, the output can be reproduced.  

We can clearly observe the difference in the results after using round() and truncate().  

How we use the round off function is quite important, and as a software developer, we need to have this understanding of what are the common issues and how to handle them. So, let’s study about different methods to round off a value and how it can be implemented in Python.    

Rounding Half Away From Zero

When we take a closer look at round_half_up() and round_half_down(), we notice that neither of them is symmetric around zero. Symmetry can be introduced by rounding a tie away from zero.

We start by shifting the decimal point to the right. Then we take a look at the digit d immediately to the right of the decimal place in this new number. There are four cases for this scenario:  

  1. If n is positive and d >= 5, then round up the value  
  2. If n is positive and d < 5, then round down the value 
  3. If n is negative and d >= 5, then round down the value  
  4. If n is negative and d < 5, then round up the value  

After rounding according to the above method, we shift the decimal back to the left.  

Rounding Half to Even

One way to avoid rounding bias when rounding values in a dataset is rounded to the nearest even number. Let’s see few examples below: 

The round() function is free from bias, but it isn’t perfect. But rounding bias can still be introduced if the majority of the values in the dataset rounds up to even instead of rounding down. The “rounding half to even strategy” is used in the Python built-in function round().  

Apply For Executive PG Programme in Data Science

Summary

  • Now, we have gone through various methods of rounding off in Python.  There are best practices to round off the real-world data.  
  • We can use round off in numpy and pandas data frames.  
  • There can be rounding errors, but for that, we have various different ways to round off the values and avoid those errors. 
Want to share this article?

Prepare for a Career of the Future

Leave a comment

Your email address will not be published. Required fields are marked *

Our Popular Data Science Course

Get Free Consultation

Leave a comment

Your email address will not be published. Required fields are marked *

×
Get Free career counselling from upGrad experts!
Book a session with an industry professional today!
No Thanks
Let's do it
Get Free career counselling from upGrad experts!
Book a Session with an industry professional today!
Let's do it
No Thanks