当前位置: 首页 > 图灵资讯 > 行业资讯> round四舍五入在python2与python3版本间区别

round四舍五入在python2与python3版本间区别

发布时间:2025-09-24 11:04:00

round()方法返回数值的小数点四舍五入n个数字。

语法

以下是round()方法的语法:

round( x ,n)

参数

x --它是一个值,表示需要格式化的值

n --这也是一个值,表示小数点后保留了多少位置

返回值

该方法返回 数值x 小数点四舍五入n个数字

PS: round 四舍五入传入的数据,如果ngigits不传输,默认为0(即保留整数部分).ngigits<0 当整数部分四舍五入时,返回的结果是浮点数.

例子

下面的例子显示了round()方法的使用

#!/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)

当我们操作上述程序时,它会产生以下结果:

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

Python3和Python2版本的区别

Python2将x四舍五入为远离0的最近倍数,如round(0.5)=1, round(-0.5)=-1;

Python3将x四舍五入到最近的偶数倍数,如round(0.5)=0, round(1.5)=2.0, round(2.5)=2.0

代码:

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

输出结果

2.63
2.65
2.65
2.67
2.67

round方法缺陷

通过以上例子,你可以发现, round的四舍五入方法似乎与我们所理解的不同, 其实这不是round的bug, 这主要来自于输入时将十进制转换为计算机内部二进制时,在精度有限的情况下无法解决,也无需解决。

Python 的 decimal 该模块可用于解决此问题。

假如你不需要四舍五入,你也可以考虑使用我们最熟悉的print。("%.2f" % 2.675)这样实现。

相关文章

Python中reduce函数和lambda表达式的学习

Python中reduce函数和lambda表达式的学习

2025-09-25
Python小白必学的面向对象

Python小白必学的面向对象

2025-09-25
一个例子解释python装饰器

一个例子解释python装饰器

2025-09-25
深入理解Python的set和dict

深入理解Python的set和dict

2025-09-25
Python中正则表达式的巧妙使用

Python中正则表达式的巧妙使用

2025-09-25
5分钟搞定Python中函数的参数

5分钟搞定Python中函数的参数

2025-09-25