這篇文章主要介紹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 對象的原始值