Introduction to the difference between rounding in python2 and python3

巴扎黑
Release: 2017-08-21 14:44:51
Original
1933 people have browsed it

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)
Copy after login

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
Copy after login

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)
Copy after login

Output result:

2.63
2.65
2.65
2.67
2.67
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!