狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript 中的四舍五入

admin
2024年4月29日 11:3 本文熱度 1085

在 JavaScript 中,對數值進行四舍五入操作的場景有以下幾種:

  • 向上取整:ceil

  • 向下取整:floor

  • 四舍五入:round

  • 固定精度:toFixed

  • 固定長度:toPrecision

  • 取整:trunc、parseInt、位運算

本文將對這 6 個 API 進行簡單的講解和總結。

1、向上取整: ceil

ceil 是`天花板`的意思,表示在一個數值之上,且距離該數最近的整數。ceil 是 Math 對象的靜態方法,需要傳遞一個參數,其調用方法如下:

1
2
Math.ceil(12.34); //13
Math.ceil(12.68); //13

2、向下取整: floor

floor 是`地板`的意思,表示在一個數值之下,且距離該數最近的整數。floor 是 Math 對象的靜態方法,需要傳遞一個參數,其調用方法如下:

1
2
Math.floor(12.34); // 12
Math.floor(12.68); // 12

3、四舍五入: round

round 的作用是對一個浮點數進行四舍五入,并保留整數位。round 也是 Math 對象的靜態方法,也需要傳遞一個參數,其調用方法如下:

1
2
Math.round(12.34); // 12
Math.round(12.54); // 13

4、固定精度: toFixed

toFixed 和上面三個方法不同,它是 Number 原型上實現的一個方法,其作用是對一個浮點數進行四舍五入并保留固定小數位。 toFixed 需要傳遞一個參數,其調用方式如下:

1
2
100.456001.toFixed(2); // 100.46
100.456001.toFixed(3); // 100.456

5、固定長度: toPrecision

toPrecison 也是 Number 原型上實現的一個處理浮點數的方法,和 toFixed 不同的是,它是對一個浮點數進行四舍五入并保留固定長度的有效數字,包括整數部分。

1
2
99.456001.toPrecision(5);  // 99.456
100.456001.toPrecision(5); // 100.46

 6、取整: parseInt

parseInt 是 全局對象 window上的一個方法,其作用是對一個可轉換的數值取整,分為以下兩種情況:

1. 將字符串數值轉化為 Number 整數,對字符串的每一個字符進行轉化,直到遇到不可轉化的字符(包括小數點)停止。

2. 對浮點類型數值取整,忽略小數部分,不做四舍五入處理

1
2
3
4
5
6
7
8
// 字符串數值
parseInt('100') ; // 100
parseInt('100axt'); // 100
parseInt('100xh20'); // 100
parseInt('100.78'); // 123
// Number 類型
parseInt(100.12) ; // 100
parseInt(100.78); // 100

7、取整: 位運算

  • | 0   : 和 0 進行 按位或 操作,原值不變

  • ~~   : 兩次 按位非 操作得到的也是原值

  • >> 0 : 右移 0 位

  • << 0 : 左移 0 位

  • >>> 0: 無符號右移 0 位 

這些位運算符在實現取整操作時,會表現出一些共同的特征:

  • 對于 Number 類型來說,直接應用位操作, 和 parseInt 得到的結果幾乎一樣;

  • 對于其他類型,內部會先通過 Number() 將其轉換為一個數值,然后再應用位操作。

  • 對特殊 NaN 和 Infinity 值應用位操作時,這兩個值都會被當成 0 來處理 。

對于 Number 類型,直接應用位運算。

1
2
3
4
5
~~ 100.12;  //  100
100.78  |  0;    //  100
100.45 >>  0;    //  100
100.50 <<  0;   // 100
100.96 >>> 0;    //  100

對于其他類型,先使用 Number() 轉換為數值類型,再進行位運算。

1
2
3
4
5
6
7
8
9
10
11
12
~~ '100.12'  // 100, Number('100.12') == 100.12
'100.50'  >> 0;  // 100,Number('100.50') == 100.50
'100.96'  << 0;  // 100,Number('100.96') == 100.96
~~ 'abc'  // 0 , Number('abc') == NaN
'12abc'  >> 0;  // 0, Number('12abc') == NaN
undefined | 0 ; // 0, Number(undefined) == NaN
~~null;      // 0 , Number(null) == 0
true >> 0; // 1 , Number(true) == 1
false >> 0; //0 , Number(false) == 0
[]  << 0;     // 0 , Number([]) == 0
~~NaN; // 0
Infinity >>> 0; // 0

位運算作用于最基本的層次上,即按內存中表示數值的位來操作數值。

位運算能取整的原因是:

ECMAScript 中的數值以64位雙精度浮點數存儲,但位運算只能作用于整數,因此要先將 64 位的浮點數轉換成 32 位的整數,然后再進行位運算,最后再將計算結果轉換成64位浮點數存儲。

 

8、取整: trunc

trunc 是 Math 對象上新增的 Api,用于去除一個數的小數部分,返回整數部分:

1
2
3
Math.trunc(1.2); // 1
Math.trunc(1.8); // 1
Math.trunc(0.5); // 0

該文章在 2024/4/29 11:03:18 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved