Collection of formatters to transform numbers.
The defacto numerical library (numeraljs) hasn't been updated since 2017. And that's not a bad thing (if it's not broken, don't try to fix it), but as ECMAScript evolves and we drop browsers that we don't need to support anymore, I decided to give it a go at this and attempt to make a tree-shakeable version, using Internationalization API to leverage off locales.
npm install numerical-fns --save-dev
// or yarn add numerical-fns --dev
And import wherever
import { formatCurrency } from 'numerical-fns'
formatCurrency(1) // Output: $1.00
numerical-fns
package contains esm
and CommonJS
modules
- ✅ Currency
- ✅ Decimal
- ✅ Percentage
Currency formatter takes two arguments, value to format and options.
import { formatCurrency } from 'numerical-fns'
formatCurrency(1.20, { locale: { locale: 'en-US', currency: 'USD' }, asLargeNumber: false, useParentesis: false })
// Output: $1.20
value
- Number
or String
options
- Object
Name | description | default |
---|---|---|
locale | locale object that contains locale , currency and largeNumbers i18n |
en-US see locales/en-us.js |
asLargeNumbers | add suffix to the formatted number. Ex: $100 thousand |
false |
useParentesis | wrap formatted in parentesis instead of - sign |
false |
Decimal formatter takes two arguments, value to format and options.
import { formatDecimal } from 'numerical-fns'
formatDecimal(1.20, { locale: { locale: 'en-US' }, asLargeNumber: false, useParentesis: false })
// Output: 1.20
value
- Number
or String
options
- Object
Name | description | default |
---|---|---|
locale | locale object that contains locale and largeNumbers i18n |
en-US see locales/en-us.js |
asLargeNumbers | add suffix to the formatted number. Ex: $100 thousand |
false |
useParentesis | wrap formatted in parentesis instead of - sign |
false |
Percentage formatter takes two arguments, value to format and options.
import { formatPercentage } from 'numerical-fns'
formatPercentage(1.20, { locale: { locale: 'en-US' }, useParentesis: false })
// Output: 120%
value
- Number
or String
options
- Object
Name | description | default |
---|---|---|
locale | locale object that contains locale or your own, as long as it has locale defined |
en-US see locales/en-us.js |
useParentesis | wrap formatted in parentesis instead of - sign |
false |