如何在 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 變數以正數作為被除數,以零作為除數,產生無限商和 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= 除數 - 被除數 * 商),其中商是一個與被除數 x 符號相同的整數,並且儘可能接近 0。

我們使用二元 ~~ 運算子來查詢提供的兩個數字的商。餘數是透過將商乘以除數和被除數的差來計算的。parseInt() 方法在將值解析為字串後返回第一個整數。

語法

var remainder = (x - y * parseInt(x / y));

可以透過從被除數中減去除數並將商乘以該值來計算餘數。

示例 2

在這個例子中,使用者為兩個變數 x1 和 y1 提供了輸入。這兩個整數都是正數。計算餘數並在螢幕上顯示。

x2-y2 對顯示負被除數除以正被除數的除法。X3 以正被除數作為輸入,而 Y3 以負被除數作為輸入。x4-y4 變數除以零並接受正值作為被除數,產生 NaN 餘數和 0 商。為了保留商的真實值,使用了兩次按位非運算子。

<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 中執行整數除法並獲取餘數的方法,即使用 (%) 運算子和模方法。

更新於:2022年9月14日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.