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

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

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

熱門話題

WebSocket與JavaScript:實(shí)現(xiàn)即時(shí)監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)引言:隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,即時(shí)監(jiān)控系統(tǒng)在各個(gè)領(lǐng)域中得到了廣泛的應(yīng)用。而實(shí)現(xiàn)即時(shí)監(jiān)控的關(guān)鍵技術(shù)之一就是WebSocket與JavaScript的結(jié)合使用。本文將介紹WebSocket與JavaScript在即時(shí)監(jiān)控系統(tǒng)中的應(yīng)用,並給出程式碼範(fàn)例,詳細(xì)解釋其實(shí)作原理。一、WebSocket技

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上語(yǔ)音辨識(shí)系統(tǒng)引言:隨著科技的不斷發(fā)展,語(yǔ)音辨識(shí)技術(shù)已成為了人工智慧領(lǐng)域的重要組成部分。而基於WebSocket和JavaScript實(shí)現(xiàn)的線上語(yǔ)音辨識(shí)系統(tǒng),具備了低延遲、即時(shí)性和跨平臺(tái)的特點(diǎn),成為了廣泛應(yīng)用的解決方案。本文將介紹如何使用WebSocket和JavaScript來(lái)實(shí)現(xiàn)線上語(yǔ)音辨識(shí)系

如何利用JavaScript和WebSocket實(shí)現(xiàn)即時(shí)線上點(diǎn)餐系統(tǒng)介紹:隨著網(wǎng)路的普及和技術(shù)的進(jìn)步,越來(lái)越多的餐廳開始提供線上點(diǎn)餐服務(wù)。為了實(shí)現(xiàn)即時(shí)線上點(diǎn)餐系統(tǒng),我們可以利用JavaScript和WebSocket技術(shù)。 WebSocket是一種基於TCP協(xié)定的全雙工通訊協(xié)議,可實(shí)現(xiàn)客戶端與伺服器的即時(shí)雙向通訊。在即時(shí)線上點(diǎn)餐系統(tǒng)中,當(dāng)使用者選擇菜餚並下訂單

JavaScript和WebSocket:打造高效的即時(shí)天氣預(yù)報(bào)系統(tǒng)引言:如今,天氣預(yù)報(bào)的準(zhǔn)確性對(duì)於日常生活以及決策制定具有重要意義。隨著技術(shù)的發(fā)展,我們可以透過(guò)即時(shí)獲取天氣數(shù)據(jù)來(lái)提供更準(zhǔn)確可靠的天氣預(yù)報(bào)。在本文中,我們將學(xué)習(xí)如何使用JavaScript和WebSocket技術(shù),來(lái)建立一個(gè)高效的即時(shí)天氣預(yù)報(bào)系統(tǒng)。本文將透過(guò)具體的程式碼範(fàn)例來(lái)展示實(shí)現(xiàn)的過(guò)程。 We

如何使用WebSocket和JavaScript實(shí)現(xiàn)線上預(yù)約系統(tǒng)在當(dāng)今數(shù)位化的時(shí)代,越來(lái)越多的業(yè)務(wù)和服務(wù)都需要提供線上預(yù)約功能。而實(shí)現(xiàn)一個(gè)高效、即時(shí)的線上預(yù)約系統(tǒng)是至關(guān)重要的。本文將介紹如何使用WebSocket和JavaScript來(lái)實(shí)作一個(gè)線上預(yù)約系統(tǒng),並提供具體的程式碼範(fàn)例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進(jìn)行全雙工

JavaScript教學(xué):如何取得HTTP狀態(tài)碼,需要具體程式碼範(fàn)例前言:在Web開發(fā)中,經(jīng)常會(huì)涉及到與伺服器進(jìn)行資料互動(dòng)的場(chǎng)景。在與伺服器進(jìn)行通訊時(shí),我們經(jīng)常需要取得傳回的HTTP狀態(tài)碼來(lái)判斷操作是否成功,並根據(jù)不同的狀態(tài)碼來(lái)進(jìn)行對(duì)應(yīng)的處理。本篇文章將教你如何使用JavaScript來(lái)取得HTTP狀態(tài)碼,並提供一些實(shí)用的程式碼範(fàn)例。使用XMLHttpRequest

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

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