本篇文章給大家?guī)砹岁P于javascript的相關知識,主要為大家介紹了JavaScript中使用toLocaleString數(shù)字格式化處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助。

toLocaleString
項目中給數(shù)字做格式化處理的問題太常見啦,特別是涉及到金融數(shù)字的部分,這次就是有個需求需要給各種不同格式,要是以前可能就傻傻的自己寫函數(shù)處理,可是這次無意間看到還有這么好用的函數(shù),那以前豈不是純純的大冤種了-_-
Number.prototype.toLocaleString()
參數(shù): numObj.toLocaleString([locales [, options]])。
第一個參數(shù)是一個可選參數(shù),縮寫語言代碼(BCP 47 language tag,例如: cmn-Hans-CN)的字符串或者這些字符串組成的數(shù)組,一些 Unicode 擴展鍵也是被允許的,詳情見MDN,有特殊地區(qū)格式就得傳當?shù)氐?code>locales。一般傳值undefined,zh或者en,就可以應對大多數(shù)情況了,默認不傳是undefiend。
1、數(shù)字分割成千分位
它直接調(diào)用,默認就是分割千分位的
var a = 123456.6789 a.toLocaleString() // 123,456.679,默認保留3位小數(shù)
如果不想被分給成千分位,則需要用到一個屬性useGrouping: false
var a = 123456.6789
a.toLocaleString(undefined, {useGrouping: false}) // 123456.67892、保留幾位小數(shù)
這里主要用到了兩個屬性: 保留最少小數(shù)minimumFractionDigits和保留最多小數(shù)maximumFractionDigits
var a = 123456.6789
a.toLocaleString(undefined, {minimumFractionDigits: 6}) //123,456.678900這里把最少保留數(shù)設為6,那它就會保留6位小數(shù)
var a = 123456.6789
a.toLocaleString(undefined, {maximumFractionDigits: 2}) //123,456.68如果想保留兩位小數(shù)的話,把保留最多小數(shù)設為2就行。
3、使用的整數(shù)數(shù)字的最小數(shù)目minimumIntegerDigits
范圍是1-21,默認1
var a = 123456.6789
a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.679使用的整數(shù)數(shù)字的最小數(shù)目,不足會補零
4、使用的有效數(shù)字的最小數(shù)目minimumSignificantDigits
范圍是1-21,默認1
var a = 123456.6789
a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.6795、使用的有效數(shù)字的最大數(shù)目maximumSignificantDigits
范圍是1-21,默認21
var a = 123456.6789
a.toLocaleString(undefined, {maximumSignificantDigits: 6}) //123,4574.5兩個保留有效位的屬性也很厲害,可以保留任意有效位,四舍五入,不足位的會補零。
6、展示的樣式style
屬性style是不同樣式展示選項:默認是decimal。 選項:
decimal: 純數(shù)字
percent: 百分比
unit: 單位格式,配合unit,單位使用。單位取值
currency: 用于貨幣格式,注意這個屬性不能單獨使用,還得配套使用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也可配套使用,前者制定對應的貨幣,比如 USD 、EUR 與 CNY (不區(qū)分大小寫的),后者則是貨幣符號的展示樣式,默認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對數(shù)字的常規(guī)格式,應對日常的格式處理應該夠用的。
當然它還有Date.prototype.toLocaleString,Array.prototype.toLocaleString,感興趣可以自行了解一下。






