Python numpy.round(0.5) 的一个问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyhaohaoxuexi/article/details/86545945

  在完成第三周的作业时候,并没有像第二周一样直接暴力的使用if else实现最后的预测结果部分的判断,而是使用了np.round(),于是测试时候出现了一个问题。

输入:

import numpy as np

print(np.round(0.5))
print(np.round(1.5))

输出:

0.0
2.0

  很奇怪啊,明明是四舍五入,但是输出了0,在文档中给出了相关的回答:

python3.5中:

values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice.

  也就是说如果四舍五入时候到两边的距离一样,结果会是偶数部分的值,所以结果是0.0和2.0。

python2.7中:

values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done away from 0

  可以看到,在2.7版本中,如果两边距离相等,那么会等于远离0的值,所以如果是2.7版本,输出应该是:

1.0
2.0

猜你喜欢

转载自blog.csdn.net/yyhaohaoxuexi/article/details/86545945
今日推荐