Javascript Math.random()是如何工作的?

Javascript Math.random()是如何工作的?,javascript,Javascript,这里我们得到一个介于0和1之间的随机数,然后四舍五入,所以它总是等于0,对吗 var random = Math.floor(Math.random()); 然后在这里我们乘以5。那么0*5肯定永远等于0 var random = Math.floor(Math.random() * 5); 那么它如何返回1到5之间的数字呢 谢谢你的表情 Math.floor(Math.random() * 5) 首先调用Math.random(),然后将结果乘以5来计算。这将是一个介于0和5之间的数字(

这里我们得到一个介于0和1之间的随机数,然后四舍五入,所以它总是等于0,对吗

var random = Math.floor(Math.random());
然后在这里我们乘以5。那么0*5肯定永远等于0

var random = Math.floor(Math.random() * 5);
那么它如何返回1到5之间的数字呢

谢谢你的表情

Math.floor(Math.random() * 5)
首先调用
Math.random()
,然后将结果乘以5来计算。这将是一个介于0和5之间的数字(可能等于零,但始终小于5)

只有这样,结果才会传递到
Math.floor()

通常,先计算括号内的子表达式。在本例中,这是一个函数调用,但这仍然是一个很好的“经验法则”。“由内而外的工作”,这与你在豪华晚宴上使用银器的方式有点背道而驰。不过,我承认,我从来没有弄清楚如何处理盘子顶部的餐具

Math.floor(Math.random() * 5)
.random()生成介于0和1之间的随机数,.floor()将数字向下舍入为最接近的整数

var random = Math.round(Math.random() / (1/5))

这将使您的号码介于1-5之间。

请再次查看。Maxx编程语言的语义对于这个领域的新手来说可能并不明显,问这样一个清楚的问题是一个很好的学习方法。“然后我们把它乘以5。那么0*5肯定永远等于0?”-不。谁告诉你的
0*5
Math.random()*5
生成一个介于0-4之间的数字(双精度)。@progy_rock 0-4.999999…@JoeConsterdine yes,在将值传递给目标函数之前,参数表达式将被完全计算。只需停止引用盘子顶部的餐具,服务员将在下次它们出现时对它们进行垃圾收集……他已经知道了。但是等一下,
Math.round
做什么样的舍入呢?最近的还是塞林?上限原因1到5,最近的原因0到5。你为什么要把5除以1?通过把一个数字n(0-1之间)除以五分之一,我们得到一个介于1和5之间的数字,例如0/(1/5)=0和1/(1/5)=5。数学四舍五入的行为如下:正数如1.5四舍五入为2,然后正数1.497236四舍五入为1。数学.舍入->向下最接近整数!=接近