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?非常感谢,明白了吗