当我执行Math.random()函数时,为什么当“1”独占时它能够返回“1”?

时间:2015-11-02 02:29:41

标签: javascript function random max min

当我调用下面的randomNumber()函数时,它总是向控制台输出“1”。这让我感到困惑,因为我认为“0”是包容性的,“1”是排他性的。如果范围是“0”到“1”,randomNumber()永远不会返回“1”吗?为什么程序会这样做?

以下是相关代码:

function randomNumber(min,max) {
         return Math.random()* (max-min) + min;
}

var rand= Math.ceil(randomNumber(0,1));

console.log(rand);

1 个答案:

答案 0 :(得分:1)

因为rand不是随机数发生器的输出;它是输出的 ceiling ,它被定义为大于或等于输出的最小整数。在你的情况下,那是1。

请改为尝试:

function randomCharge(min,max) {
    return Math.random()* (max-min) + min;
}

var rand= randomCharge(0,1);

console.log(rand);