Javascript 数学地板到底做什么?

Javascript 数学地板到底做什么?,javascript,math,random,Javascript,Math,Random,例如,我知道Math.floor舍入最接近的整数 function myFunction() { document.getElementById("demo").innerHTML = Math.floor(0.9); } 将输出1 但我不明白为什么 function myFunction() { document.getElementById("demo").innerHTML = Math.floor(Math.random()*2); } 输出1 谢谢 floor()方

例如,我知道
Math.floor
舍入最接近的整数

function myFunction() {
    document.getElementById("demo").innerHTML = Math.floor(0.9);
}
将输出
1

但我不明白为什么

function myFunction() {
    document.getElementById("demo").innerHTML = Math.floor(Math.random()*2);
}
输出
1

谢谢

floor()方法将数字向下舍入为最接近的整数, 并返回结果

如果传递的参数是整数,则不会对该值进行舍入


不,实际上这行代码输出
0

 Math.floor(0.9);
Math.floor
始终四舍五入到小于输入值的最接近整数。您可能会将其与“Math.round”(四舍五入到最接近的整数)混淆

这就是为什么此代码总是输出
1
0
,因为输入永远不会到达
2
或更大:

Math.floor(Math.random()*2)
JavaScript中实际上有三种不同的舍入函数:
Math.floor
,它的对立面是
Math.ceil
,以及“通常的”
Math.round

它们是这样工作的:

Math.floor(0.1); // Outputs 0
Math.ceil(0.1); // Outputs 1
Math.round(0.1); // Outputs 0

Math.floor(0.9); // Outputs 0
Math.ceil(0.9); // Outputs 1
Math.round(0.9); // Outputs 1

Math.floor(0.5); // Outputs 0
Math.ceil(0.5); // Outputs 1
Math.round(0.5); // Outputs 1

正如其他人所解释的,
floor()
总是向下舍入到整数,而不是最接近的整数

在回答问题的另一部分时,默认情况下,
random()
返回一个介于0和1之间的数字。因此,
floor(random())
将始终返回零
floor(random()*2)
将返回一半时间的1(当
random()
给出一个结果.5或更高时,使其在
*2
之后一个或多个),而另一半时间的0(当
random()
给出的结果小于.5时,因此将其乘以2仍然小于1)。

var x=Math.floor(.9);
$(“正文”)。附加(x)

0它不会四舍五入到最接近的整数。它删除浮点数的任何小数部分;实际上,它总是向零进发<代码>数学地板(1.9999999)
1
<代码>数学层(0.9)是
0
,而不是
1
;你在浏览器的开发者控制台上试过了吗?如果你已经投了反对票,请解释一下原因。因为没有一个有问题的陈述是正确的,如果你阅读手册了解math.floor实际上做了什么Hanks mate,那么math.ceil(2.3)将输出3?非常感谢,明白了吗