欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript取整函數(shù)及向零取整幾種常用的方法

 更新時間:2025年01月18日 11:47:35   作者:GISer_Jinger  
這篇文章主要介紹了Javascript取整函數(shù)及向零取整幾種常用的方法,每種方法都有其特點和適用場景,推薦使用Math.trunc(),因為它語義明確、代碼易讀且性能較好,需要的朋友可以參考下

向零取整方式

在JavaScript中,有多種方式可以對數(shù)字進行取整操作,即去掉小數(shù)部分,只保留整數(shù)部分。其中,向0取整(也稱為截斷小數(shù)部分)的方式有以下幾種常用的方法:

  • 使用 Math.trunc()
    Math.trunc() 方法會去掉一個數(shù)字的小數(shù)部分,返回其整數(shù)部分,但不進行四舍五入。

    let num = 4.9;
    let truncated = Math.trunc(num); // 4
    console.log(truncated);
  • 使用按位運算符 |(按位或)
    按位運算符 | 在處理數(shù)字時,會將操作數(shù)轉換為32位整數(shù),從而截斷小數(shù)部分。

    let num = 4.9;
    let truncated = num | 0; // 4
    console.log(truncated);
  • 使用雙波浪號 ~~
    雙波浪號 ~~ 也是一種按位取整的方式,效果與 | 類似,會截斷小數(shù)部分。

    let num = 4.9;
    let truncated = ~~num; // 4
    console.log(truncated);
    綜上所述,最推薦的方法是使用 Math.trunc(),因為它語義明確,代碼易讀,且性能較好。其他方法雖然也能實現(xiàn)向0取整的效果,但在可讀性和維護性上可能稍遜一籌。
  • 使用 Math.floor() 和 Math.ceil() 的組合(僅當數(shù)字為正數(shù)時):
    雖然 Math.floor() 和 Math.ceil() 是用于向下和向上取整的方法,但可以通過判斷數(shù)字的符號來選擇使用哪一個,以達到向0取整的效果。不過這種方法相對復雜,且不如前幾種方法直觀。

function truncate(num) {
return num < 0 ? Math.ceil(num) : Math.floor(num);
}


let num = 4.9;
let truncated = truncate(num); // 4
console.log(truncated);


let negNum = -4.9;
let negTruncated = truncate(negNum); // -4
console.log(negTruncated);

5.使用字符串操作
可以通過將數(shù)字轉換為字符串,然后去掉小數(shù)點及其后的部分,最后再轉換回數(shù)字。這種方法雖然可以實現(xiàn)效果,但效率較低且不夠直觀,不建議使用。

function truncate(num) {
return parseInt(num.toString(), 10);
}


let num = 4.9;
let truncated = truncate(num); // 4
console.log(truncated);

常見取整函數(shù)

在JavaScript中,有多種方法可以對數(shù)字進行取整操作。這些方法各有特點,適用于不同的場景。以下是常見的幾種取整函數(shù)及其詳解:

  • Math.floor()
    • 功能:向下取整,即返回小于或等于給定數(shù)字的最大整數(shù)。
    • 語法Math.floor(x)
    • 示例
      console.log(Math.floor(4.9)); // 輸出: 4
      console.log(Math.floor(-4.1)); // 輸出: -5
  • Math.ceil()
    • 功能:向上取整,即返回大于或等于給定數(shù)字的最小整數(shù)。
    • 語法Math.ceil(x)
    • 示例
      console.log(Math.ceil(4.1)); // 輸出: 5
      console.log(Math.ceil(-4.9)); // 輸出: -4
  • Math.round()
    • 功能:四舍五入,即返回最接近給定數(shù)字的整數(shù)。
    • 語法Math.round(x)
    • 示例
      console.log(Math.round(4.5)); // 輸出: 5
      console.log(Math.round(4.4)); // 輸出: 4
      console.log(Math.round(-4.5)); // 輸出: -4
  • Math.trunc()
    • 功能:移除小數(shù)部分,只保留整數(shù)部分,不進行四舍五入。
    • 語法Math.trunc(x)
    • 示例
      console.log(Math.trunc(4.9)); // 輸出: 4
      console.log(Math.trunc(-4.1)); // 輸出: -4

      位運算符取整

      • 功能:通過位運算符 |^、&、~、<<>>、>>> 可以將浮點數(shù)轉換為整數(shù),相當于去掉小數(shù)部分(類似 Math.trunc,但僅對32位整數(shù)有效)。
      • 示例
        console.log(4.9 | 0); // 輸出: 4
        console.log(-4.1 | 0); // 輸出: -4
      • 注意:位運算符取整僅適用于32位整數(shù)范圍(-231-1),超出范圍會導致精度丟失。

  • 雙否定(Double Negation)
    • 功能:通過雙否定操作將浮點數(shù)轉換為整數(shù)(相當于 Math.trunc)。
    • 示例
      console.log(~~4.9); // 輸出: 4
      console.log(~~-4.1); // 輸出: -4
    • 注意:雙否定操作對超出JavaScript安全整數(shù)范圍的數(shù)字無效。
  • 字符串轉換
    • 功能:通過字符串轉換并截取整數(shù)部分來取整。
    • 示例
      console.log(parseInt(4.9)); // 輸出: 4
      console.log(parseInt(-4.1)); // 輸出: -4
    • 注意:這種方法依賴于字符串轉換,性能可能不如其他內(nèi)置方法。
  • toFixed() 后轉整數(shù)
    • 功能:通過 toFixed() 方法將數(shù)字轉換為指定小數(shù)位數(shù)的字符串,然后轉換為整數(shù)。
    • 示例
      const num = 4.9;
      console.log(parseFloat(num.toFixed(0))); // 輸出: 5
      const num2 = -4.1;
      console.log(parseFloat(num2.toFixed(0))); // 輸出: -4
    • 注意toFixed() 方法返回的是字符串,需要再次轉換為數(shù)字。

總結

  • Math.floor():向下取整。
  • Math.ceil():向上取整。
  • Math.round():四舍五入。
  • Math.trunc():移除小數(shù)部分。
  • 位運算符:通過位操作移除小數(shù)部分(32位整數(shù)范圍內(nèi)有效)。
  • 雙否定:通過雙否定操作移除小數(shù)部分(32位整數(shù)范圍內(nèi)有效)。
  • 字符串轉換:通過字符串轉換并截取整數(shù)部分。
  • toFixed() 后轉整數(shù):通過 toFixed() 方法轉換為字符串后再轉為整數(shù)。

每種方法都有其適用的場景和限制,選擇時需根據(jù)具體需求進行權衡。

到此這篇關于Javascript取整函數(shù)及向零取整幾種常用的方法的文章就介紹到這了,更多相關js取整函數(shù)及向零取整內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JS中將blob返回值轉換為json格式的問題小結

    JS中將blob返回值轉換為json格式的問題小結

    這篇文章主要介紹了JS中如何將blob返回值轉換為json格式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • 解決前端使用xlsx.js工具讀取excel遇到時間日期少43秒問題

    解決前端使用xlsx.js工具讀取excel遇到時間日期少43秒問題

    這篇文章主要給大家介紹了關于如何解決前端使用xlsx.js工具讀取excel遇到時間日期少43秒問題的相關資料,xlsx.js是一種前端庫,它可以使您使用JavaScript讀取、解析和導出電子表格文件,如Microsoft Excel,需要的朋友可以參考下
    2024-03-03
  • 求數(shù)組最大最小值方法適用于任何數(shù)組

    求數(shù)組最大最小值方法適用于任何數(shù)組

    之前雖然介紹過一種求數(shù)組最大最小值的方法,但那個方法只是用于數(shù)組中都是數(shù)字的,下面為大家介紹個方法適用于任何數(shù)組,有此需求的朋友可以參考下
    2013-08-08
  • three.js實現(xiàn)圓柱體

    three.js實現(xiàn)圓柱體

    這篇文章主要為大家詳細介紹了three.js實現(xiàn)圓柱體的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 代碼觸發(fā)js事件(click、change)示例應用

    代碼觸發(fā)js事件(click、change)示例應用

    Chrome , Firfox 不支持fireEvent的方法可以使用dispatchEvent的方法替代,直接給一個兼容的Code,下面有個不錯的示例,喜歡的朋友可以收藏下
    2013-12-12
  • 全面解析Javascript無限添加QQ好友原理

    全面解析Javascript無限添加QQ好友原理

    這篇文章主要介紹了全面解析Javascript無限添加QQ好友原理的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • JavaScript寫的一個自定義彈出式對話框代碼

    JavaScript寫的一個自定義彈出式對話框代碼

    最近閑來無事,用js自己做了一個彈出式對話框,需要應用彈出式對話框的朋友可以參考下。
    2010-01-01
  • 移動端JS實現(xiàn)拖拽兩種方法解析

    移動端JS實現(xiàn)拖拽兩種方法解析

    這篇文章主要介紹了移動端JS實現(xiàn)拖拽兩種方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Script的加載方法小結

    Script的加載方法小結

    對動態(tài)加載腳本,需要重點關注的一個問題是,所動態(tài)加載的JS腳本的接口依賴問題。
    2011-01-01
  • 微信小程序?qū)崿F(xiàn)時間軸特效

    微信小程序?qū)崿F(xiàn)時間軸特效

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)時間軸特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論