亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

JavaScript 中的四舍五入

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

在 JavaScript 中,對數(shù)值進(jìn)行四舍五入操作的場景有以下幾種:

  • 向上取整:ceil

  • 向下取整:floor

  • 四舍五入:round

  • 固定精度:toFixed

  • 固定長度:toPrecision

  • 取整:trunc、parseInt、位運算

本文將對這 6 個 API 進(jìn)行簡單的講解和總結(jié)。

1、向上取整: ceil

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

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

2、向下取整: floor

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

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

3、四舍五入: round

round 的作用是對一個浮點數(shù)進(jìn)行四舍五入,并保留整數(shù)位。round 也是 Math 對象的靜態(tài)方法,也需要傳遞一個參數(shù),其調(diào)用方法如下:

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

4、固定精度: toFixed

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

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

5、固定長度: toPrecision

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

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

 6、取整: parseInt

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

1. 將字符串?dāng)?shù)值轉(zhuǎn)化為 Number 整數(shù),對字符串的每一個字符進(jìn)行轉(zhuǎn)化,直到遇到不可轉(zhuǎn)化的字符(包括小數(shù)點)停止。

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

1
2
3
4
5
6
7
8
// 字符串?dāng)?shù)值
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 進(jìn)行 按位或 操作,原值不變

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

  • >> 0 : 右移 0 位

  • << 0 : 左移 0 位

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

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

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

  • 對于其他類型,內(nèi)部會先通過 Number() 將其轉(zhuǎn)換為一個數(shù)值,然后再應(yīng)用位操作。

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

對于 Number 類型,直接應(yīng)用位運算。

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() 轉(zhuǎn)換為數(shù)值類型,再進(jìn)行位運算。

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

位運算作用于最基本的層次上,即按內(nèi)存中表示數(shù)值的位來操作數(shù)值。

位運算能取整的原因是:

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

 

8、取整: trunc

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

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

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