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

When I execute a Math.random() function why is it able to return "1" when "1" is exclusive?

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

相关代码如下:

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

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

console.log(rand);

因为rand不是随机数生成器的输出;它是输出的ceiling,定义为大于或等于输出的最小整数。在你的例子中,那是 1.

试试这个:

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

var rand= randomCharge(0,1);

console.log(rand);