BigInt.prototype.toLocaleString()

toLocaleString() 方法返回一个字符串,该字符串具有此 BigInt 的 language-sensitive 表达形式。

语法

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

浏览器支持

Update compatibility data on GitHub
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
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

请参阅