BigInt.prototype.toLocaleString() - JavaScript 编辑
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
可选. 包含一些或所有的下面属性的类:
“decimal”
用于纯数字格式;“currency”
用于货币格式;“percent”
用于百分比格式;“unit”
用于单位格式
localeMatcher
- 使用的 local 的匹配算法. 可能的值有
"lookup
和"best fit"
; 默认值是"best fit"
. 有关此选项更多的信息, 请参见 Intl page. style
- 要使用的格式样式,默认为 “decimal”。
numberingSystem
- 编号系统。可能的值包括:"
arab
","arabext
","bali
","beng
","deva
","fullwide
","gujr
","guru
","hanidec
","khmr
","knda
","laoo
", "latn
","limb
","mlym
","mong
","mymr
","orya
","tamldec
","telu
","thai
","tibt
"。 unit
unit
格式中使用的单位,可能的值为在 UTS #35, Part 2, Section 6 定义的核心单元标识符。已从完整列表中选择了一个单位子集以用于ECMAScript。可以将成对的简单单位与“ -per-”
连接以组成一个复合单位。没有默认值;如果style
为“unit”
,必须提供unit
属性。unitDisplay
unit
格式化中使用的单位格式化样式,默认值为“ short”。“long”
(e.g.,16 litres
)“short“
(e.g.,16 l
)”narrow“
(e.g.,16l
)
currency
- 在货币格式化中使用的货币符号. 可能的值是ISO的货币代码 (the ISO 4217 currency codes,) 例如
"USD"
表示美元,"EUR"
表示欧元, 或者"CNY"是人民币
— 更多请参考 Current currency & funds code list。没有默认值,如果style
是“currency”
,必须提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
和 ISO 4217 currency code list 中大的那一个(如果列表中没有提供则值为2);百分比格式默认值是minimumfractiondigits
和 0 中大的那一个。 minimumSignificantDigits
- 使用的有效数字的最小数目。可能的值是从1到21;默认值是1。
maximumSignificantDigits
- 使用的有效数字的最大数量。可能的值是从1到21;默认是 21.
notation
- 该号码应显示的格式,默认为
“standard”
。- "
standard
" 纯数字格式; - "
scientific
" 返回格式化数字的大小顺序; - "
engineering
" 当被三除时返回十的指数 - "
compact
" 代表指数的字符串,默认使用“short”
格式- "
compactDisplay
" 仅在notation
为“compact”
时使用,采用“short”
(默认)或“long
”
- "
- "
返回值
具有此 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
对象并使用其 NumberFormat.format
属性提供的函数。
标准
Specification | Status |
---|---|
BigInt | Stage 3 |
浏览器支持
BCD tables only load in the browser
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.
请参阅
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论