JavaScript中使用toLocaleString數(shù)字格式化處理詳解
toLocaleString 偷懶小幫手啊~
項(xiàng)目中給數(shù)字做格式化處理的問(wèn)題太常見(jiàn)啦,特別是涉及到金融數(shù)字的部分,這次就是有個(gè)需求需要給各種不同格式,要是以前可能就傻傻的自己寫函數(shù)處理,可是這次無(wú)意間看到還有這么好用的函數(shù),那以前豈不是純純的大冤種了-_-
Number.prototype.toLocaleString()
參數(shù): numObj.toLocaleString([locales [, options]])。
第一個(gè)參數(shù)是一個(gè)可選參數(shù),縮寫語(yǔ)言代碼(BCP 47 language tag,例如: cmn-Hans-CN)的字符串或者這些字符串組成的數(shù)組,一些 Unicode 擴(kuò)展鍵也是被允許的,詳情見(jiàn)MDN,有特殊地區(qū)格式就得傳當(dāng)?shù)氐?code>locales。一般傳值undefined
,zh
或者en
,就可以應(yīng)對(duì)大多數(shù)情況了,默認(rèn)不傳是undefiend
。
1. 數(shù)字分割成千分位
它直接調(diào)用,默認(rèn)就是分割千分位的
var a = 123456.6789 a.toLocaleString() // 123,456.679,默認(rèn)保留3位小數(shù)
如果不想被分給成千分位,則需要用到一個(gè)屬性useGrouping: false
var a = 123456.6789 a.toLocaleString(undefined, {useGrouping: false}) // 123456.6789
2. 保留幾位小數(shù)
這里主要用到了兩個(gè)屬性: 保留最少小數(shù)minimumFractionDigits
和保留最多小數(shù)maximumFractionDigits
var a = 123456.6789 a.toLocaleString(undefined, {minimumFractionDigits: 6}) //123,456.678900
這里把最少保留數(shù)設(shè)為6,那它就會(huì)保留6位小數(shù)
var a = 123456.6789 a.toLocaleString(undefined, {maximumFractionDigits: 2}) //123,456.68
如果想保留兩位小數(shù)的話,把保留最多小數(shù)設(shè)為2就行。
3. 使用的整數(shù)數(shù)字的最小數(shù)目minimumIntegerDigits
范圍是1-21,默認(rèn)1
var a = 123456.6789 a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.679
使用的整數(shù)數(shù)字的最小數(shù)目,不足會(huì)補(bǔ)零
4. 使用的有效數(shù)字的最小數(shù)目minimumSignificantDigits
范圍是1-21,默認(rèn)1
var a = 123456.6789 a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.679
5. 使用的有效數(shù)字的最大數(shù)目maximumSignificantDigits
范圍是1-21,默認(rèn)21
var a = 123456.6789 a.toLocaleString(undefined, {maximumSignificantDigits: 6}) //123,457
4.5兩個(gè)保留有效位的屬性也很厲害,可以保留任意有效位,四舍五入,不足位的會(huì)補(bǔ)零。
6. 展示的樣式style
屬性style
是不同樣式展示選項(xiàng):默認(rèn)是decimal
。 選項(xiàng):
decimal
: 純數(shù)字
percent
: 百分比
unit
: 單位格式,配合unit
,單位使用。單位取值
currency
: 用于貨幣格式,注意這個(gè)屬性不能單獨(dú)使用,還得配套使用currency
屬性
var a = 123456.6789, a.toLocaleString(undefined, {style: 'decimal'}) //123,456.679 a.toLocaleString(undefined, {style: 'percent'}) // 12,345,668% a.toLocaleString(undefined, {style: 'currency', currency: 'EUR'}) // €123,456.68 a.toLocaleString(undefined, {style: 'currency', currency: 'CNY'}) // ¥123,456.68 a.toLocaleString(undefined, {style: 'unit', unit: 'acre'}) // 123,456.679英畝
其中currency
和currencyDisplay
也可配套使用,前者制定對(duì)應(yīng)的貨幣,比如 USD
、EUR
與 CNY
(不區(qū)分大小寫的),后者則是貨幣符號(hào)的展示樣式,默認(rèn)currencyDisplay
:symbol
:
var a = 123456.6789, a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'symbol'}) // ¥123,456.68 a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'code'}) // CNY 123,456.68 a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'name'}) // 123,456.68人民幣
上面都是一些toLocaleString
對(duì)數(shù)字的常規(guī)格式,應(yīng)對(duì)日常的格式處理應(yīng)該夠用的。
當(dāng)然它還有Date.prototype.toLocaleString
,Array.prototype.toLocaleString
,感興趣可以自行了解一下。
以上就是JavaScript中使用toLocaleString數(shù)字格式化處理詳解的詳細(xì)內(nèi)容,更多關(guān)于toLocaleString數(shù)字格式化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解微信小程序如何實(shí)現(xiàn)類似ChatGPT的流式傳輸
這篇文章主要為大家介紹了微信小程序如何實(shí)現(xiàn)類似ChatGPT的流式傳輸示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03微信小程序 wxapp導(dǎo)航 navigator詳解
這篇文章主要介紹了微信小程序 wxapp導(dǎo)航 navigator詳解的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下2016-10-10

Uncaught EvalError:Refused to evaluate a

前端必會(huì)的package.json創(chuàng)建及常見(jiàn)屬性用法示例詳解

Performance 內(nèi)存監(jiān)控使用技巧詳解

Three.js概述和基礎(chǔ)知識(shí)學(xué)習(xí)