我想知道 JavaScript 如何处理模数。例如,JavaScript 的评估结果47 % 8
是什么?我似乎找不到任何关于它的文档,而且我在模数方面的技能也不是最好的。
问问题
2915 次
4 回答
3
就像每种语言都处理模数一样:X / Y
.
47 % 8 == 7
此外,如果您使用 Firefox + Firebug、Safari、Chrome 甚至 IE8+ 等浏览器,您可以像按 F12 一样快速测试这样的操作。
于 2013-01-11T04:49:29.487 回答
2
当给定一个负数作为输入(在左侧)时,Javascript 的模运算符返回一个负数。
14 % 5 // 4
15 % 5 // 0
-15 % 5 // -0
-14 % 5 // -4
(注意:负零在 JavaScript 和其他具有 IEEE 浮点数的语言中是一个不同的值,但-0 === 0
您通常不必担心它。)
如果您想要一个始终介于 0 和您指定的正数之间的数字,您可以定义如下函数:
function mod(n, m) {
return ((n % m) + m) % m;
}
mod(14, 5) // 4
mod(15, 5) // 4
mod(-15, 5) // 0
mod(-14, 5) // 1
于 2020-11-12T17:35:41.873 回答
0
于 2013-01-11T04:54:53.010 回答
0
为了更好地理解模数,它是如何构建的;
function modulo(num1, num2) {
if (typeof num1 != "number" || typeof num2 != "number"){
return NaN
}
var num1isneg=false
if (num1.toString().includes("-")){
num1isneg=true
}
num1=parseFloat(num1.toString().replace("-",""))
var leftover =parseFloat( ( parseFloat(num1/num2) - parseInt(num1/num2)) *num2)
console.log(leftover)
if (num1isneg){
var z = leftover.toString().split("")
z= ["-", ...z]
leftover = parseFloat(z.join(""))
}
return leftover
}
于 2021-07-16T00:19:02.563 回答