天天看點

JavaScript數學運算(取整,取餘和取模)

JavaScript數學運算(取整,取餘和取模)

這篇文章主要介紹js取整、取餘和取模的實作方法和它們之間的差別,以及Math對象的常用方法函數介紹,有需要的朋友可以參考下。

取整

在項目開發過程中,有時要對小數取整操作,JavaScript也提供了4種方法,分别為round()、ceil()、floor()和parseInt()取整。

其中round()是四舍五入取整,ceil() 是向上取整,floor() 是向下取整,parseInt() 隻取整數部分。

1、保留整數部分 

Math.parseInt() 方法就是僅取整數部分,也就是不管小數點後的數是否大于5,一律舍棄:

//保留整數部分
parseInt(3/2)  // 1      
2、向上取整

Math.ceil() 方法就是向上取整,求最小的整數但不小于本身,例如:

// 向上取整,有小數就整數部分加1
Math.ceil(3/2)  // 2      
3、向下取整

Math.floor() 方法就是向下取整,求最大的整數但不大于本身,例如:

// 向下取整,丢棄小數部分
Math.floor(3/2)  // 1      
4、四舍五入

如果要求對小數進行四舍五入,請使用 Math.round() 方法,例如:

// 四舍五入
Math.round(3/2)  // 2      

除此之外還可以使用toFixed方法來實作,比如:

(3/2).toFixed() //2      

toFixed(num)傳回值為string,把 Number 四舍五入為指定小數位數的數字,num為指定的小數位數。

取餘和取模

差別

取餘是數學中的概念,取模是計算機中的概念,兩者都是求兩數相除的餘數

1.當兩數符号相同時,結果相同,比如:7%4 與 7 Mod 4 結果都是3

2.當兩數符号不同時,結果不同,比如

(-7)%4=-3
(-7)Mod4=1      

取餘運算,求商采用fix函數,向0方向舍入,取 -1。是以 (-7) % 4 商 -1 餘數為 -3

取模運算,求商采用 floor 函數,向無窮小方向舍入,取 -2。是以 (-7) Mod 4 商 -2 餘數為 1

取餘

取餘運算符 (%):一個表達式的值除以另一個表達式的值,傳回餘數。公式:result = numberA % numberB傳回值:result,任何變量。

7%4  //3
-7%3 //-1      
取模

取模運算可采用如下公式:

Number.prototype.mod = function(n) {
  return ((this % n) + n) % n;
}
// 或 
function mod(n, m) {
  return ((n % m) + m) % m;
}      

使用:​

mod(-7, 3) //2
(-7).mod(3) //2


(7).mod(3) //1      

Math 對象的方法介紹

  • abs(x) 傳回數的絕對值 1 2 3
  • acos(x) 傳回數的反餘弦值 1 2 3
  • asin(x) 傳回數的反正弦值 1 2 3
  • atan(x) 以介于 -PI/2 與 PI/2 弧度之間的數值來傳回 x 的反正切值 1 2 3
  • atan2(y,x) 傳回從 x 軸到點 (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間) 1 2 3
  • ceil(x) 對一個數進行上舍入。1 2 3
  • cos(x) 傳回數的餘弦 1 2 3
  • exp(x) 傳回 e 的指數。1 2 3
  • floor(x) 對一個數進行下舍入。1 2 3
  • log(x) 傳回數的自然對數(底為e) 1 2 3
  • max(x,y) 傳回 x 和 y 中的最高值 1 2 3
  • min(x,y) 傳回 x 和 y 中的最低值 1 2 3
  • pow(x,y) 傳回 x 的 y 次幂 1 2 3
  • random() 傳回 0 ~ 1 之間的随機數 1 2 3
  • round(x) 把一個數四舍五入為最接近的整數 1 2 3
  • sin(x) 傳回數的正弦 1 2 3
  • sqrt(x) 傳回數的平方根 1 2 3
  • tan(x) 傳回一個角的正切 1 2 3
  • toSource() 代表對象的源代碼 1 4 -
  • valueOf() 傳回一個 Math 對象的原始值
JavaScript數學運算(取整,取餘和取模)