如何在 JavaScript 中执行整数除法并获取余数?
在本教程中,我们将学习如何在 JavaScript 中执行整数除法并获取余数。
除法运算符 (/) 返回其操作数的商,其中被除数在左侧,除数在右侧。当另一个数除以一个操作数时,余数运算符 (%) 返回余数。它始终采用被除数的符号。
在运算 x% y 中,x 称为被除数,y 称为除数。如果其中一个操作数是 NaN,x 是 Infinity,或者 y 是 0,则运算返回 NaN。否则,如果 y 是 Infinity 或 x 是 0,则返回被除数 x。
以下是执行 JavaScript 中整数除法并获取余数的方法。
方法 1:使用 % 运算符
当一个操作数除以另一个操作数时,余数 (%) 运算符返回余数。使用此方法的返回值在第一个操作数为负数时始终为负数,反之亦然,当第一个操作数为正数时。无论何时一个值除以另一个值,余数运算符都将始终返回剩余的值。
语法
var remainder = x % y;
变量x是分子,y是被除数。余数(%)运算符返回 x 和 y 的余数值。
示例 1
在此示例中,我们使用了 (/) 运算符来获取两个数字的商。余数是使用 (%) 运算符找到的。
两个变量 x1 和 y1 从用户那里获取输入。Math.floor() 函数向下舍入使用商 (/) 运算符找到的商值。计算余数并打印在屏幕上。x2-y2 对显示负除数和正被除数的除法。x3 变量将正除数作为输入,y3 将负被除数作为输入。x4-y4 变量将正数作为被除数,并将 0 作为除数,产生无限商和 NaN 余数。
<html> <body> <h3>Perform integer division and get remainder using <i>%operator</i> method</h3> <p id = "root"></p> </body> <script> let root = document.getElementById("root"); var x1 = 111; var y1 = 8; var quotient1 = Math.floor(x1/y1); var remainder1 = x1%y1; root.innerHTML = "111/8 =" +quotient1+ "<br>"; root.innerHTML += "111%8 = "+remainder1+"<br>"; var x2 = -127.7; var y2 = 0.144; var quotient2 = Math.floor(x2/y2); var remainder2 = x2%y2; root.innerHTML += "(-127.7)/0.144 = " + quotient2 + "<br>"; root.innerHTML += "(-127.7)%0.144 = "+ remainder2 + "<br>"; var x3 = 100.23; var y3 = -123.2; var quotient3 = Math.floor(x3/y3); var remainder3 = x3%y3; root.innerHTML += "(100.23)/(-123.2) = " + quotient3 + "<br>"; root.innerHTML += "(100.23)%(-123.2) = "+ remainder3 +"<br>"; var x4 = 14.9; var y4 = 0; var quotient4 = Math.floor(x4/y4); var remainder4 = x4%y4; root.innerHTML += "(14.9)/(0) = " +quotient4+ "<br>"; root.innerHTML += "(14.9)%(0) = "+remainder4+"<br>"; </script> </html>
方法 2
对于运算 x% y,x 和 y 分别称为被除数和除数。如果其中一个操作数是 NaN,x 是无限的,或者 y 是零,则运算返回 NaN。否则,如果 y 是 Infinity 或 x 是 0,则返回被除数 x。
当两个操作数都非零且有限时,计算剩余余数。这里,(remainder= divisor - dividend * quotient),其中商是一个整数,其符号与被除数 x 相同,并且尽可能接近 0。
我们使用二进制 ~~ 运算符来查找提供的两个数字的商。余数是通过将商乘以除数和被除数的差来计算的。parseInt()方法在将值解析为字符串后返回第一个整数。
语法
var remainder = (x - y * parseInt(x / y));
余数可以通过从被除数中减去除数并乘以商的值来计算。
示例 2
在此示例中,用户已向两个变量 x1 和 y1 提供了输入。这两个整数都是正数。计算余数并显示在屏幕上。
x2-y2 对显示负被除数除法和正被除数除数。X3 将正被除数作为输入,而 Y3 将负被除数作为输入。x4-y4 变量除以零并将正值作为被除数,产生 NaN 余数和 0 商。为了保留商的真实值,位运算符 NOT 被使用了两次。
<html> <body> <h3>Perform integer division and get remainder using <i>modulo</i> method</h3> <p id = "root"></p> </body> <script> let root = document.getElementById("root"); var x1 = 8; var y1 = 2; var quotient1 = ~~(x1/y1); var remainder1 = (x1 - y1 * parseInt(x1 / y1)); root.innerHTML = "8/2 =" +quotient1+ "<br>"; root.innerHTML += "8%2 = "+remainder1+"<br>"; var x2 = -77; var y2 = 0.87; var quotient2 = ~~(x2/y2); var remainder2 = (x2 - y2 * parseInt(x2 / y2)); root.innerHTML += "(-77)/0.87 = " +quotient2+ "<br>"; root.innerHTML += "(-77)%0.87 = "+remainder2+"<br>"; var x3 = 244.7; var y3 = -12.8; var quotient3 = ~~(x3/y3); var remainder3 = (x3 - y3 * parseInt(x3 / y3)); root.innerHTML += "(244.7)/(-12.8) = " +quotient3+ "<br>"; root.innerHTML += "(244.7)%(-12.8) = "+remainder3+"<br>"; var x4 = 122.11; var y4 = 0; var quotient4 = ~~(x4/y4); var remainder4 = (x4 - y4 * parseInt(x4 / y4)); root.innerHTML += "(122.11)/(0) = " +quotient4+ "<br>"; root.innerHTML += "(122.11)%(0) = "+remainder4+"<br>"; </script> </html>
在本教程中,我们学习了两种在 JavaScript 中执行整数除法并获取余数的方法,即使用 (%) 运算符和模方法。