Intl.NumberFormat

Intl.NumberFormat 对象启用语言敏感的数字格式。

¥The Intl.NumberFormat object enables language-sensitive number formatting.

Try it

构造函数

¥Constructor

Intl.NumberFormat()

创建一个新的 NumberFormat 对象。

静态方法

¥Static methods

Intl.NumberFormat.supportedLocalesOf()

返回一个数组,其中包含所提供的受支持的语言环境,而无需回退到运行时的默认语言环境。

实例属性

¥Instance properties

这些属性在 Intl.NumberFormat.prototype 上定义并由所有 Intl.NumberFormat 实例共享。

¥These properties are defined on Intl.NumberFormat.prototype and shared by all Intl.NumberFormat instances.

Intl.NumberFormat.prototype.constructor

创建实例对象的构造函数。对于 Intl.NumberFormat 实例,初始值为 Intl.NumberFormat 构造函数。

Intl.NumberFormat.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 属性的初始值为字符串 "Intl.NumberFormat"。该属性在 Object.prototype.toString() 中使用。

实例方法

¥Instance methods

Intl.NumberFormat.prototype.format()

根据此 Intl.NumberFormat 对象的区域设置和格式选项格式化数字的 Getter 函数。

Intl.NumberFormat.prototype.formatRange()

Getter 函数,根据调用该方法的 Intl.NumberFormat 对象的区域设置和格式选项来格式化一系列数字。

Intl.NumberFormat.prototype.formatRangeToParts()

返回 Array 个对象,表示可用于自定义区域设置感知格式的部分中的数字字符串范围。

Intl.NumberFormat.prototype.formatToParts()

返回 Array 个对象,表示可用于自定义区域设置感知格式的部分中的数字字符串。

Intl.NumberFormat.prototype.resolvedOptions()

返回一个新对象,其属性反映了在对象初始化期间计算的区域设置和排序规则选项。

示例

¥Examples

基本用法

¥Basic usage

在不指定区域设置的基本使用中,将返回默认区域设置和带有默认选项的格式化字符串。

¥In basic use without specifying a locale, a formatted string in the default locale and with default options is returned.

js
const number = 3500;

console.log(new Intl.NumberFormat().format(number));
// '3,500' if in US English locale

使用语言环境

¥Using locales

此示例显示本地化数字格式的一些变化。为了获取应用用户界面中使用的语言的格式,请确保使用 locales 参数指定该语言(可能还有一些后备语言):

¥This example shows some of the variations in localized number formats. In order to get the format of the language used in the user interface of your application, make sure to specify that language (and possibly some fallback languages) using the locales argument:

js
const number = 123456.789;

// German uses comma as decimal separator and period for thousands
console.log(new Intl.NumberFormat("de-DE").format(number));
// 123.456,789

// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(new Intl.NumberFormat("ar-EG").format(number));
// ١٢٣٤٥٦٫٧٨٩

// India uses thousands/lakh/crore separators
console.log(new Intl.NumberFormat("en-IN").format(number));
// 1,23,456.789

// the nu extension key requests a numbering system, e.g. Chinese decimal
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// 一二三,四五六.七八九

// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// 123.456,789

使用选项

¥Using options

可以使用 options 参数自定义结果:

¥The results can be customized using the options argument:

js
const number = 123456.789;

// request a currency format
console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// 123.456,79 €

// the Japanese yen doesn't use a minor unit
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// ¥123,457

// limit to three significant digits
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// 1,23,000

// Formatting with units
console.log(
  new Intl.NumberFormat("pt-PT", {
    style: "unit",
    unit: "kilometer-per-hour",
  }).format(50),
);
// 50 km/h

console.log(
  (16).toLocaleString("en-GB", {
    style: "unit",
    unit: "liter",
    unitDisplay: "long",
  }),
);
// 16 litres

有关选项的详尽列表,请参阅 Intl.NumberFormat() constructor 页。

¥For an exhaustive list of options, see the Intl.NumberFormat() constructor page.

规范

Specification
ECMAScript Internationalization API Specification
# numberformat-objects

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看