Package Exports
- @formatjs/intl-unified-numberformat
- @formatjs/intl-unified-numberformat/polyfill
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@formatjs/intl-unified-numberformat) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
intl-unified-numberformat
A ponyfill/polyfill for intl-unified-numberformat
. This wraps Intl.NumberFormat
and has the exact same APIs.
Installation
npm install @formatjs/intl-unified-numberformat
Requirements
This package requires the following capabilities:
Features
Everything in the https://github.com/tc39/proposal-unified-intl-numberformat proposal with the caveats below.
Caveats
compact
notation is currently buggy in certain locales with special compact rules (such aszh-Hant
orSomali
) See https://github.com/tc39/proposal-unified-intl-numberformat/issues/26 for more details.
Usage
To use the ponyfill, import it along with its data:
import {UnifiedNumberFormat} from '@formatjs/intl-unified-numberformat';
UnifiedNumberFormat.__addLocaleData(
require('@formatjs/intl-unified-numberformat/dist/locale-data/zh.json') // locale-data for zh
);
UnifiedNumberFormat.__addLocaleData(
require('@formatjs/intl-unified-numberformat/dist/locale-data/en.json') // locale-data for en
);
new UnifiedNumberFormat('zh', {
style: 'unit',
unit: 'bit',
unitDisplay: 'long',
}).format(1000); // 1,000比特
To use this as a polyfill, override Intl.NumberFormat
as below:
import '@formatjs/intl-unified-numberformat/polyfill';
if (typeof Intl.NumberFormat.__addLocaleData === 'function') {
Intl.NumberFormat.__addLocaleData(
require('@formatjs/intl-unified-numberformat/dist/locale-data/zh.json') // locale-data for zh
);
Intl.NumberFormat.__addLocaleData(
require('@formatjs/intl-unified-numberformat/dist/locale-data/en.json') // locale-data for en
);
}
new Intl.NumberFormat('zh', {
style: 'unit',
unit: 'bit',
unitDisplay: 'long',
}).format(1000); // 1,000比特
new Intl.NumberFormat('en-US', {
notation: 'engineering',
}).format(987654321); // 987.7E6
new Intl.NumberFormat('zh', {
style: 'currency',
currency: 'EUR',
currencySign: 'accounting',
}).format(-100); // (€100.00)
Supported Units
Currently intl-unified-numberformat has a list of sanctioned units as below
type Unit =
| 'acre'
| 'bit'
| 'byte'
| 'celsius'
| 'centimeter'
| 'day'
| 'degree'
| 'fahrenheit'
| 'fluid-ounce'
| 'foot'
| 'gallon'
| 'gigabit'
| 'gigabyte'
| 'gram'
| 'hectare'
| 'hour'
| 'inch'
| 'kilobit'
| 'kilobyte'
| 'kilogram'
| 'kilometer'
| 'liter'
| 'megabit'
| 'megabyte'
| 'meter'
| 'mile'
| 'mile-scandinavian'
| 'millimeter'
| 'milliliter'
| 'millisecond'
| 'minute'
| 'month'
| 'ounce'
| 'percent'
| 'petabyte'
| 'pound'
| 'second'
| 'stone'
| 'terabit'
| 'terabyte'
| 'week'
| 'yard'
| 'year';