大家好,又见面了,我是你们的朋友全栈君。
Python中的 round() 有两个参数,第一个参数是需要处理的数,第二个参数是数位精度,默认为0。round(3.4)
## 3
round(3.5)
## 4
而有时候会出现奇怪的情况,比如:round(3.24, 1) #是四舍五入
## 3.2
round(3.26, 1) #是四舍五入
## 3.3
round(3.25, 1) #不是四舍五入
## 3.2
###################################
round(0.44, 1) #是四舍五入
## 0.4
round(0.46, 1) #是四舍五入
## 0.5
round(0.45, 1) #是四舍五入
## 0.5
很多人说Python3中采用的是【四舍六入五留双】,上面的例子说明这种说法是不正确的。其实是因为:十进制小数在计算机内是通过二进制小数来近似,在舍和进两个选项中选择更接近的一个
而当舍和进的两个选项十分接近时,round 选择偶数的选项
这就导致出现的结果非常复杂了。
进一步解释:十进制小数 $0.2$ 和 $0.3$ 的二进制表示分别为:
$$
begin{align}
(0.2)_{10} & = left(frac{1}{8}+frac{1
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128799.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...