JavaScript中常用的數(shù)字取整方法,趕緊收藏起來(lái)!


在 JavaScript 實(shí)際開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)遇到數(shù)字取整的問(wèn)題。本篇文章收集了一些方法,有需要的朋友趕緊收藏起來(lái)吧!
直接取整,顧名思義只取整數(shù)部分,小數(shù)部分就直接舍去。
(1)parseInt()
parseInt() 函數(shù)解析一個(gè)字符串參數(shù),并返回一個(gè)指定基數(shù)的整數(shù)。
parseInt("2022abc"); //2022parseInt(""); // NaNparseInt("0xC"); // 12 十六進(jìn)制parseInt(22.06); // 22parseInt(-22.06); // 22parseInt("030"); // 30 八進(jìn)制
(2) Math.trunc()
Math.trunc() 方法會(huì)將數(shù)字的小數(shù)部分去掉,只保留整數(shù)部分。
Math.trunc(10.15); // 10Math.trunc(35.13); // 35Math.trunc(0.123); // 0Math.trunc(-0.123); // -0Math.trunc("-3.1415"); // -3Math.trunc(NaN); // NaNMath.trunc("foo"); // NaNMath.trunc(); // NaN
除了以上兩個(gè)直接取整方法,我們也可以運(yùn)用按位運(yùn)算符來(lái)實(shí)現(xiàn)數(shù)字取證。所有的按位運(yùn)算符都是以帶符號(hào)的 32 位整數(shù)進(jìn)行。使用它們可以將浮點(diǎn)型轉(zhuǎn)換為整數(shù)。但這里面也存在一個(gè)問(wèn)題,取整的數(shù)字有一個(gè)安全范圍 ±2^31-1,即2147483647。
(1)~~number
雙波浪線 ~~ 操作符也被稱為雙按位非操作符。通常,可以用它來(lái)代替 Math.trunc() 方法。
~~35.12 // 35~~3.33333 // 3~~5 // 5~~[] // 0~~NaN // 0~~null // 0// 異常情況~~2147483648.123 // -2147483648
(2) number丨0
丨(按位或)對(duì)每一對(duì)比特位執(zhí)行或(OR)操作
35.12|0 // 35-35.12|0 // -352000000000000.15|0 // -1454759936
(3) number^0
^(按位異或),對(duì)每一對(duì)比特位執(zhí)行異或(XOR)操作。
35.12^0 // 35-35.12^0 // -352000000000000.15^0 // -1454759936
(4) number<<0
<<(左移)操作符會(huì)將第一個(gè)操作數(shù)向左移動(dòng)指定的位置。向左被移出的位被丟棄,右側(cè)用0補(bǔ)充。
35.12<<0 // 35-35.12<<0 // -352000000000000.15<<0 // -1454759936
以上快速取整方法執(zhí)行很快,即便當(dāng)你執(zhí)行數(shù)百萬(wàn)這樣的操作仍然非常使用,速度明顯優(yōu)于其他方法。但這樣有一個(gè)缺點(diǎn),就是代碼的可讀性差。還要注意一個(gè)點(diǎn),當(dāng)處理一個(gè)特別大的數(shù)字時(shí),會(huì)有一些異常情況。因此,在使用的時(shí)候要明確檢查輸入數(shù)值的范圍。
當(dāng)然以上直接去除小數(shù)點(diǎn)有時(shí)候還不滿足我們的實(shí)際開(kāi)發(fā)需求,有時(shí)候需要對(duì)小數(shù)進(jìn)行四舍五入。在JavaScript中,Math對(duì)象提供了以下三種方法。
(1)四舍五入
Math.round() 是將數(shù)值四舍五入為最相近的整數(shù)。
Math.round(3.1) // 3Math.round(5.5) // 6Math.round(5.9) // 6Math.round(-3.1) // -3Math.round(-5.5) // -5Math.round(-5.9) // -6
(2)向下取整
Math.floor() 是取向下最近的整數(shù)。
Math.floor(3.1) // 3Math.floor(5.5) // 5Math.floor(5.9) // 5Math.floor(-3.1) // -4Math.floor(-5.5) // -6Math.floor(-5.9) // -6
(3)向上取整
Math.ceil() 是取向上最近的整數(shù)。
Math.ceil(3.1) // 4Math.ceil(5.5) // 6Math.ceil(5.9) // 6Math.ceil(-3.1) // -3Math.ceil(-5.5) // -5Math.ceil(-5.9) // -5
結(jié)尾
以上就是介紹JavaScript中常用的數(shù)字取整方法的內(nèi)容,如果覺(jué)得本篇文章對(duì)你有所幫助,希望大家伙兒能夠多多支持,點(diǎn)個(gè)關(guān)注、收藏!
這里是w3cschool編程獅,關(guān)注我們,閱讀更多的IT資訊及技術(shù)干貨~


課程:《JavaScript 入門課程》
課程介紹:本課程將帶你全面掌握最實(shí)用的JavaScript知識(shí)點(diǎn);能夠精準(zhǔn)輸出JavaScript代碼;制作出有好的動(dòng)態(tài)網(wǎng)頁(yè)等。
課程特點(diǎn):本課程不同于傳統(tǒng)的教學(xué)課程,以微課圖文形式的課程呈現(xiàn)。
160+知識(shí)點(diǎn)圖文呈現(xiàn),為理解服務(wù);
160+隨堂練習(xí),踐行在“做”中“學(xué)”;
7次小節(jié)測(cè)驗(yàn),講練結(jié)合。
課程評(píng)價(jià):



學(xué)習(xí)方式:掃碼 ↓ 立即前往課程界面~

