首頁  >  文章  >  web前端  >  javascript轉換成整數方法有哪些?

javascript轉換成整數方法有哪些?

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-07-21 15:06:043775瀏覽

javascript轉換成整數方法有:1、使用parseInt()方法,語法格式「parseInt(字串,要解析的數字的基數)」;2、使用Math.trunc()方法,語法格式為「Math.trunc(數值)」。

javascript轉換成整數方法有哪些?

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

本文將會列舉並說明JavaScript 把一個number(或numerical的物件)轉換成一個整數相關方法。

使用parseInt

parseInt的語法如下:parseInt(string, radix)

參數string的表示要解析的字串,也可以是一個對象,會自動調用物件的toString函數得到要解析的字串。

parseInt的第二個參數,可以指定要解析的數字的基數,注意該值介於 2 ~ 36 之間,如果該參數小於 2 或大於 36,則 parseInt() 將傳回 NaN。例如下面的程式碼,結果為8,這樣可以很方便的把其他的進位的數字轉換為10進位的數字:

parseInt(10,8) // 结果为8

當參數radix 的值為0,或沒有設定該參數時,parseInt() 會根據string 來判斷數字的基數。

舉例,如果 string 以 "0x" 開頭,parseInt() 會把 string 的其餘部分解析為十六進位的整數。如果 string 以 0 開頭,那麼 ECMAScript v3 允許 parseInt() 的一個實作把其後的字元解析為八進位或十六進位的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數。

註解

1. 只有字串中的第一個數字會被傳回。什麼意思呢,如果輸入的字串是"123abc","123,123",那麼結果就是123,parseInt方法會自動忽略後面的非數字部分。

2. 輸入字串開頭和結尾的空格是允許的。

3. parseFloat 也具備以上兩個特徵,不過本文不重點敘述。

使用Math.trunc

Math.trunc() 方法會將數字的小數部分去掉,只保留整數部分。例如以下程式碼:

Math.trunc(13.37)    // 13
Math.trunc(42.84)    // 42
Math.trunc(0.123)    //  0
Math.trunc(-0.123)   // -0
Math.trunc("-1.123") // -1
Math.trunc(NaN)      // NaN
Math.trunc("foo")    // NaN
Math.trunc()         // NaN

當傳入的型別不是數字的時候,會自動做癮式轉換。但是如果是一個非numerical的參數的時候,回傳NaN。

IE瀏覽器並不支援這個方法,所以可以考慮polyfill:

Math.trunc || (Math.trunc = function(v){
   return v < 0 ? Math.ceil(v) : Math.floor(v); // 使用Math.floor和Math.ceil方法
})
// 或者
if (!Math.trunc) {
    Math.trunc = function(v) {
        v = +v;
        if (!isFinite(v)) return v;
        
        return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);
        
        // 返回:
        //  0        ->  0
        // -0        -> -0
        //  0.2      ->  0
        // -0.2      -> -0
        //  0.7      ->  0
        // -0.7      -> -0
        //  Infinity ->  Infinity
        // -Infinity -> -Infinity
        //  NaN      ->  NaN
        //  null     ->  0
    };
}

二進位位元運算

對於numerical的物件n,可以透過如下的方式來轉換為整數:

  • ~~n 雙重位元取反(Double bitwise NOT)

  • n | n 位元或運算(Bitwise OR)

  • n | 0 和0的位元或運算(Bitwise OR with 0)

  • n << 0 位元左移運算0位元( Bitwise left shift)

  • n >> 0 位元右移運算0位元(Bitwise right shift)

  • n & n 為與運算(Bitwise AND)

例如程式碼如下:

   ~~1.23 // 1
   -1.2 | -1.2  // - 1
   -1.2 | 0  // - 1
   3.4 >> 0 // 3
   3.2 << 0 // 3
   5.5 & 5.5 // 5
  ~~"1.2" // 1.2

注意,從上面可以看出,位元運算下字串會自動轉換數字。

【推薦學習:javascript進階教學

以上是javascript轉換成整數方法有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn