Home  >  Article  >  Backend Development  >  Detailed explanation of round rounding--the difference between python2 and python3 versions

Detailed explanation of round rounding--the difference between python2 and python3 versions

高洛峰
高洛峰Original
2016-10-17 16:05:431892browse

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 are retained after the decimal point

Return value

This method returns the decimal point of the value x rounded to n numbers

PS: round rounds the incoming data. If ngitits is not passed, the default is 0 (that is, the integer part is retained). When ngitits


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
e


python3 and python2 version differences

Python2 to enter the X Four House and Five to the latest multiple of 0 0 to 0 0 to the closest multiple of 0 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 defects

Through the above example, you can find that the rounding method of round looks like understand with us It's not the same. In fact, this is not a round bug. This mainly comes from the conversion of decimal to computer internal binary when inputting. Moreover, 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.

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
Previous article:python function - abs()Next article:python function - abs()