Home >Backend Development >Python Tutorial >Introduction to the difference between rounding in python2 and python3

Introduction to the difference between rounding in python2 and python3

巴扎黑
巴扎黑Original
2017-08-21 14:44:512002browse

The round() method returns the decimal point of the value rounded to n digits.

Syntax

The following is the syntax of the round() method:

round( x [, n] )

Parameters

x --This is a numerical value, indicating the value that needs to be formatted

n --This is also a numerical value, indicating how many digits to retain after the decimal point

Return value

This method returns The decimal point of the value The integer part is rounded, and the returned result is a floating point number.

Example

The following example shows the use of the round() method

#!/usr/bin/python2
print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)

When we run the above program, It will produce the following results:

round(80.23456, 2) : 80.23
round(100.000056, 3) : 100.0
round(-100.000056, 3) : -100.0

The difference between Python3 and Python2 versions

Python2 rounds x to the nearest multiple away from 0, such as round(0.5)=1, round(-0.5)= -1;

Python3 will round x to the nearest even multiple, such as round(0.5)=0, round(1.5)=2.0, round(2.5)=2.0

Code:

#!/usr/bin/python2
print round(2.635, 2)
print round(2.645, 2)
print round(2.655, 2)
print round(2.665, 2)
print round(2.675, 2)

Output result:

2.63
2.65
2.65
2.67
2.67

round method defect

Through the above example, you can find that the rounding method of round seems to be different from what we understand. In fact, this is not round bug, this mainly comes from the conversion of decimal to computer internal binary when inputting, and this problem cannot be solved with limited precision, and does not need to be solved.

Python’s decimal module can be used to solve this problem.

If you don’t need to round, you can also consider using our most familiar print("%.2f" % 2.675) method.

The above is the detailed content of Introduction to the difference between rounding in python2 and python3. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn