js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字;2、round() 方法,可把一個數(shù)字舍入為最接近的整數(shù)。
1 、tofixed方法
toFixed() 方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字。例如將數(shù)據(jù)Num保留2位小數(shù),則表示為:toFixed(Num);但是其四舍五入的規(guī)則與數(shù)學中的規(guī)則不同,使用的是銀行家舍入規(guī)則,銀行家舍入:所謂銀行家舍入法,其實質是一種四舍六入五取偶(又稱四舍六入五留雙)法。具體規(guī)則如下:
簡單來說就是:四舍六入五考慮,五后非零就進一,五后為零看奇偶,五前為偶應舍去,五前為奇要進一。
顯然這種規(guī)則不符合我們平常在數(shù)據(jù)中處理的方式。為了解決這樣的問題,可以自定義去使用Math.round方法進行自定義式 的實現(xiàn)指定保留多少位數(shù)據(jù)進行處理。
2 、round方法
round() 方法可把一個數(shù)字舍入為最接近的整數(shù)。例如:Math.round(x),則是將x取其最接近的整數(shù)。其取舍的方法使用的是四舍五入中的方法,符合數(shù)學中取舍的規(guī)則。對于小數(shù)的處理沒有那么便捷,但是可以根據(jù)不同的要求,進行自定義的處理。
例如:對于X進行保留兩位小數(shù)的處理,則可以使用 Math.round(X * 100) / 100 進行處理。
其它內容:
在 JavaScript 中,對數(shù)值進行四舍五入操作的場景有以下幾種:
向上取整:ceil向下取整:floor四舍五入:round固定精度:toFixed固定長度:toPrecision取整:parseInt、位運算
本文將對這 6 個 API 進行簡單的講解和總結。
1、向上取整: ceil
ceil 是`天花板`的意思,表示在一個數(shù)值之上,且距離該數(shù)最近的整數(shù)。ceil 是 Math 對象的靜態(tài)方法,需要傳遞一個參數(shù),其調用方法如下:
Math.ceil(12.34); //13Math.ceil(12.68); //13
2、向下取整: floor
floor 是`地板`的意思,表示在一個數(shù)值之下,且距離該數(shù)最近的整數(shù)。floor 是 Math 對象的靜態(tài)方法,需要傳遞一個參數(shù),其調用方法如下:
Math.floor(12.34); // 12Math.floor(12.68); // 12
3、四舍五入: round
round 的作用是對一個浮點數(shù)進行四舍五入,并保留整數(shù)位。round 也是 Math 對象的靜態(tài)方法,也需要傳遞一個參數(shù),其調用方法如下:
Math.round(12.34); // 12Math.round(12.54); // 13
4、固定精度: toFixed
toFixed 和上面三個方法不同,它是 Number 原型上實現(xiàn)的一個方法,其作用是對一個浮點數(shù)進行四舍五入并保留固定小數(shù)位。?toFixed 需要傳遞一個參數(shù),其調用方式如下:
100.456001.toFixed(2); // 100.46100.456001.toFixed(3); // 100.456
5、固定長度: toPrecision
toPrecison 也是 Number 原型上實現(xiàn)的一個處理浮點數(shù)的方法,和 toFixed 不同的是,它是對一個浮點數(shù)進行四舍五入并保留固定長度的有效數(shù)字,包括整數(shù)部分。
99.456001.toPrecision(5); ?// 99.456100.456001.toPrecision(5); // 100.46
?6、取整: parseInt
parseInt 是 全局對象 window上的一個方法,其作用是對一個可轉換的數(shù)值取整,分為以下兩種情況:
1. 將字符串數(shù)值轉化為 Number 整數(shù),對字符串的每一個字符進行轉化,直到遇到不可轉化的字符(包括小數(shù)點)停止。
2. 對浮點類型數(shù)值取整,忽略小數(shù)部分,不做四舍五入處理
// 字符串數(shù)值parseInt('100') ; // 100parseInt('100axt'); // 100parseInt('100xh20'); // 100parseInt('100.78'); // 123// Number 類型parseInt(100.12) ; // 100parseInt(100.78); // 100
7、取整: 位運算
| 0 ? : 和 0 進行 按位或 操作,原值不變~~ ? : 兩次 按位非 操作得到的也是原值>> 0 : 右移 0 位<< 0 : 左移 0 位>>> 0: 無符號右移 0 位?
這些位運算符在實現(xiàn)取整操作時,會表現(xiàn)出一些共同的特征:
對于 Number 類型來說,直接應用位操作, 和 parseInt 得到的結果幾乎一樣;對于其他類型,內部會先通過 Number() 將其轉換為一個數(shù)值,然后再應用位操作。對特殊 NaN 和 Infinity 值應用位操作時,這兩個值都會被當成 0 來處理 。
對于 Number 類型,直接應用位運算。
~~ 100.12; ?// ?100100.78 ?| ?0; ? ?// ?100100.45 >> ?0; ? ?// ?100100.50 << 0; // 100100.96 >>> 0; ? ?// ?100
對于其他類型,先使用 Number() 轉換為數(shù)值類型,再進行位運算。
~~ '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') == NaNundefined | 0 ; // 0, Number(undefined) == NaN~~null; ? ? ?// 0 , Number(null) == 0true >> 0; // 1 , Number(true) == 1false >> 0; //0 , Number(false) == 0[] ?<< 0; // 0 , Number([]) == 0~~NaN; // 0 Infinity >>> 0; // 0
位運算作用于最基本的層次上,即按內存中表示數(shù)值的位來操作數(shù)值。
位運算能取整的原因是:
ECMAScript 中的數(shù)值以64位雙精度浮點數(shù)存儲,但位運算只能作用于整數(shù),因此要先將 64 位的浮點數(shù)轉換成 32 位的整數(shù),然后再進行位運算,最后再將計算結果轉換成64位浮點數(shù)存儲。
以上是js四舍五入的詳細內容。更多信息請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

WebSocket與JavaScript:實現(xiàn)實時監(jiān)控系統(tǒng)的關鍵技術引言:隨著互聯(lián)網技術的快速發(fā)展,實時監(jiān)控系統(tǒng)在各個領域中得到了廣泛的應用。而實現(xiàn)實時監(jiān)控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在實時監(jiān)控系統(tǒng)中的應用,并給出代碼示例,詳細解釋其實現(xiàn)原理。一、WebSocket技

如何使用WebSocket和JavaScript實現(xiàn)在線語音識別系統(tǒng)引言:隨著科技的不斷發(fā)展,語音識別技術已經成為了人工智能領域的重要組成部分。而基于WebSocket和JavaScript實現(xiàn)的在線語音識別系統(tǒng),具備了低延遲、實時性和跨平臺的特點,成為了一種被廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現(xiàn)在線語音識別系

如何利用JavaScript和WebSocket實現(xiàn)實時在線點餐系統(tǒng)介紹:隨著互聯(lián)網的普及和技術的進步,越來越多的餐廳開始提供在線點餐服務。為了實現(xiàn)實時在線點餐系統(tǒng),我們可以利用JavaScript和WebSocket技術。WebSocket是一種基于TCP協(xié)議的全雙工通信協(xié)議,可以實現(xiàn)客戶端與服務器的實時雙向通信。在實時在線點餐系統(tǒng)中,當用戶選擇菜品并下單

JavaScript和WebSocket:打造高效的實時天氣預報系統(tǒng)引言:如今,天氣預報的準確性對于日常生活以及決策制定具有重要意義。隨著技術的發(fā)展,我們可以通過實時獲取天氣數(shù)據(jù)來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來構建一個高效的實時天氣預報系統(tǒng)。本文將通過具體的代碼示例來展示實現(xiàn)的過程。We

如何使用WebSocket和JavaScript實現(xiàn)在線預約系統(tǒng)在當今數(shù)字化的時代,越來越多的業(yè)務和服務都需要提供在線預約功能。而實現(xiàn)一個高效、實時的在線預約系統(tǒng)是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實現(xiàn)一個在線預約系統(tǒng),并提供具體的代碼示例。一、什么是WebSocketWebSocket是一種在單個TCP連接上進行全雙工

JavaScript教程:如何獲取HTTP狀態(tài)碼,需要具體代碼示例前言:在Web開發(fā)中,經常會涉及到與服務器進行數(shù)據(jù)交互的場景。在與服務器進行通信時,我們經常需要獲取返回的HTTP狀態(tài)碼來判斷操作是否成功,根據(jù)不同的狀態(tài)碼來進行相應的處理。本篇文章將教你如何使用JavaScript獲取HTTP狀態(tài)碼,并提供一些實用的代碼示例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用于在DOM樹中插入一個新的節(jié)點。這個方法需要兩個參數(shù):要插入的新節(jié)點和參考節(jié)點(即新節(jié)點將要被插入的位置的節(jié)點)。

JavaScript中的HTTP狀態(tài)碼獲取方法簡介:在進行前端開發(fā)中,我們常常需要處理與后端接口的交互,而HTTP狀態(tài)碼就是其中非常重要的一部分。了解和獲取HTTP狀態(tài)碼有助于我們更好地處理接口返回的數(shù)據(jù)。本文將介紹使用JavaScript獲取HTTP狀態(tài)碼的方法,并提供具體代碼示例。一、什么是HTTP狀態(tài)碼HTTP狀態(tài)碼是指當瀏覽器向服務器發(fā)起請求時,服務