toLocaleString()
方法返回一个字符串,该字符串具有此 BigInt
的 language-sensitive 表达形式。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
语法
bigIntObj.toLocaleString(
[locales [, options]])
参数
locales
和 options
参数可自定义函数的行为,并允许应用程序指定应使用其格式约定的语言。在忽略 locales
和 options
参数的实现中,使用的 locale
和返回的字符串形式完全依赖于实现。
-
locales
-
可选.缩写语言代码(BCP 47 language tag,例如:cmn-Hans-CN)的字符串或者这些字符串组成的数组. 关于参数locales的一般形式和解释请参见Intl page. 下面的这些Unicode扩展键也是被允许的:
译者注:下面扩展的使用方式是language[-scripts][-region]-u-nu-*,例如:zh-u-nu-hanidec(表示中文十进制数字)
-
nu
-
要使用的编号系统。可能的值有:
"arab"
,"arabext"
,"bali"
,"beng"
,"deva"
,"fullwide"
,"gujr"
,"guru"
,"hanidec"(中文十进制数字)
,"khmr"
,"knda"
,"laoo"
,"latn"
,"limb"
,"mlym"
,"mong"
,"mymr"
,"orya"
,"tamldec"
,"telu"
,"thai"
,"tibt"
.
-
-
options
-
可选. 包含一些或所有的下面属性的类:
-
localeMatcher
-
使用的local的匹配算法. 可能的值有"lookup"和"best fit"; 默认值是
"best fit"
. 有关此选项的信息, 请参见 Intl page. -
style
-
格式化时使用的样式.可能的值有“decimal”表示纯数字格式 , “currency”表示货币格式, 和
"percent"表示百分比格式
; 默认值是"decimal"
. -
currency
-
在货币格式化中使用的货币符号. 可能的值是
ISO的货币代码 (the ISO 4217 currency codes,) 例如
"USD"
表示美元,"EUR"
表示欧元, or"CNY"是人民币
— 更多请参考 Current currency & funds code list. 没有默认值,如果样式是“currency”,必须提供货币属性. -
currencyDisplay
-
如何在货币格式化中显示货币. 可能的值有
"symbol"表示
使用本地化的货币符号例如€,"code"表示
使用国际标准组织货币代码,"name"
表示使用本地化的货币名称,如"dollar"
; 默认值是"symbol"
. -
useGrouping
- 是否使用分组分隔符,如千位分隔符或千/万/亿分隔符.可能的值是true和false,默认值是true.
下面的属性分为两组:minimumintegerdigits,minimumfractiondigits,maximumfractiondigits作为一组,minimumsignificantdigits和maximumsignificantdigits作为一组.如果定义了第二组中的任意一个属性,则忽略第一组的设置.
-
minimumIntegerDigits
- 使用的整数数字的最小数目.可能的值是从1到21,默认值是1.
-
minimumFractionDigits
- 使用的小数位数的最小数目.可能的值是从0到20;默认为普通的数字和百分比格式为0;默认为货币格式是由国际标准化组织列表( ISO 4217 currency code list )提供(如果列表中没有提供则值为2).
-
maximumFractionDigits
- 使用的小数位数的最大数目。可能的值是从0到20;纯数字格式的默认值是minimumfractiondigits和3中大的那一个;货币格式默认值是minimumfractiondigits和国际标准化组织列表(如果列表中没有提供则值为2)中大的那一个;百分比格式默认值是minimumfractiondigits和0中大的那一个。
-
minimumSignificantDigits
- 使用的有效数字的最小数目。可能的值是从1到21;默认值是1。
-
maximumSignificantDigits
- 使用的有效数字的最大数量。可能的值是从1到21;默认是minimumsignificantdigits.
-
返回值
具有此 BigInt
的 language-sensitive 表示形式的字符串。
例子
Using toLocaleString
在不指定语言环境的基本用法中,将返回默认语言环境中带默认选项的格式化字符串。
var bigint = 3500n; bigint.toLocaleString(); // Displays "3,500" if in U.S. English locale
Using locales
这个例子展示了本地化数字格式的一些变体。为了获得应用程序用户界面中使用的语言的格式,请确保使用 locales
参数指定该语言(可能还有一些备用语言):
var bigint = 123456789123456789n; // German uses period for thousands console.log(bigint.toLocaleString('de-DE')); // → 123.456.789.123.456.789 // Arabic in most Arabic speaking countries uses Eastern Arabic digits console.log(bigint.toLocaleString('ar-EG')); // → ١٢٣٬٤٥٦٬٧٨٩٬١٢٣٬٤٥٦٬٧٨٩ // India uses thousands/lakh/crore separators console.log(bigint.toLocaleString('en-IN')); // → 1,23,45,67,89,12,34,56,789 // the nu extension key requests a numbering system, e.g. Chinese decimal console.log(bigint.toLocaleString('zh-Hans-CN-u-nu-hanidec')); // → 一二三,四五六,七八九,一二三,四五六,七八九 // when requesting a language that may not be supported, such as // Balinese, include a fallback language, in this case Indonesian console.log(bigint.toLocaleString(['ban', 'id'])); // → 123.456.789.123.456.789
Using options
toLocaleString
提供的结果可以使用 options
参数进行自定义:
var bigint = 123456789123456789n; // request a currency format console.log(bigint.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' })); // → 123.456.789.123.456.789,00 € // the Japanese yen doesn't use a minor unit console.log(bigint.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' })) // → ¥123,456,789,123,456,789 // limit to three significant digits console.log(bigint.toLocaleString('en-IN', { maximumSignificantDigits: 3 })); // → 1,23,00,00,00,00,00,00,000
性能
格式化大量数字时,最好创建 NumberFormat.format
属性提供的函数。
标准
Specification | Status |
---|---|
BigInt | Stage 3 |
浏览器支持
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toLocaleString |
Chrome Full support 67 | Edge No support No | Firefox Full support 68 | IE No support No | Opera Full support 54 | Safari No support No | WebView Android Full support 67 | Chrome Android Full support 67 | Firefox Android Full support 68 | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android Full support 9.0 | nodejs Full support 10.4.0 |
locales |
Chrome Full support 76 | Edge No support No | Firefox Full support 70 | IE No support No | Opera No support No | Safari No support No | WebView Android Full support 76 | Chrome Android Full support 76 | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs No support No |
options |
Chrome Full support 76 | Edge No support No | Firefox Full support 70 | IE No support No | Opera No support No | Safari No support No | WebView Android Full support 76 | Chrome Android Full support 76 | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs No support No |
Legend
- Full support
- Full support
- No support
- No support