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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

這篇文章將為大家詳細講解有關PHP浮點數四捨五入法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP浮點數四捨五入法概述浮點數在計算機中表示為小數點後跟指數,然而,它們通常以有限位數的近似值存儲。當需要將浮點數四捨五入到特定精度時,有幾種方法可以實現。方法1.round()函數round()函數將浮點數四捨五入為最接近的整數。它接受浮點數和可選的精度參數。例如:$num=1.55;echoround($num);//輸出:2echoround($num,1)

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

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

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest