什么'取决于四舍五入'究竟意味着什么?

时间:2012-11-03 21:07:31

标签: python random floating-point rounding

关于random.uniform,docstring说:

  

获取[a,b]或[a,b]范围内的随机数,具体取决于舍入。

但我不知道'取决于四舍五入'究竟是什么意思。

2 个答案:

答案 0 :(得分:7)

current documentation for random.uniform()读取:

  

返回一个随机浮点数Na <= N <= ba <= bb <= N <= ab < a

     

结束点值b可能包含也可能不包含在范围内,具体取决于等式a + (b-a) * random()中的浮点舍入。

计算机上的浮点运算在精度上受到限制,由此不精确引起的舍入误差可能导致b不包含在用于uniform()返回的随机值的整个值范围内。 / p>

random.random()返回介于0.0(含)和1.0(不包含)之间的值。 ab有一些值,其中总和a + (b-a) * (1.0 - epsilon/2)的浮点计算不等于b,但是更低 > b,而对于其他组合,总和 等于bepsilon是您平台上浮点数的最低精度(请参阅sys.float_info),1.0 - epsilon/2可以返回最大值random.random()

如果您对为什么计算机上的浮点算法的详细信息感兴趣,我可以推荐以下两篇文章:

答案 1 :(得分:-1)

rounding是:如果我向上舍入3.45,我将得到4.但如果我向下舍入,我将得到3.所以在这种情况下,来自[或]的范围值将根据在一轮