flw.numberFormat Expression
numberFormat(value: number | string, ...params)
The numberFormat
method formats a number according to the locale and formatting options passed, internally makes use of the Intl.NumberFormat API.
...params:
- locale?: string | "auto"
- style?: "currency" | "percent" | "decimal"
- fractionDigits?: number (0-20)
- currency?: string
Locale parameter
Can be any locale code such as BCP-47 codes. For ex: es
, en-US
, it-CH
How does the auto
parameter work?
The auto
parameter will pick the locale from the user navigator.
How does the precedence work?
- 1st: If
auto
locale passed will use the navigator locale and will forget about internal lang of the Form. - 2nd: If
auto
is not passed, will try to use the internal language of the form. - 3nd: If we pass another locale for ex:
en-US
will use that locale.
Style parameter
- currency: Any ISO 4127 currency codes, if a currency is provided automatically the value will be formatted giving the locale and the currency. For ex:
EUR
,CHF
,USD
- percent: A
%
percent symbol, and our value will be formatted to a percent value. (Caution here, when the value formats to percent is multiplied per cent). - decimal: is the default style, just formats the value as decimal.
Fraction digits parameter
The fractionDigits
parameter can include a number from 0 to 20, it's the minimum and maximum number of fraction digits to use.
Examples
> flw.numberFormat(123456, "auto", undefined, undefined, undefined)
// "123,456.789"
> flw.numberFormat(123456, "auto", undefined, "2", undefined)
// "123,456.79"
> flw.numberFormat(123456, "auto", undefined, "4", undefined)
// "123,456.7890"
> flw.numberFormat(123456, "es", undefined, "2", undefined)
// "123.456,79"
> flw.numberFormat(123456, "fr", undefined, "2", undefined)
// "123 456,79"
> flw.numberFormat(123456, "it-CH", undefined, "2", undefined)
// "123’456.79"
> flw.numberFormat(123456, "es", "currency", undefined, "EUR")
// "123.456,79 €"
> flw.numberFormat(123456, "fr", "currency", undefined, "EUR")
// "123 456,79 €"
> flw.numberFormat(123456, "it-CH", "currency", undefined, "CHF")
// "CHF 123’456.79"
> flw.numberFormat(123456, "en-GB", "currency", undefined, "GBP")
// "£123,456.79"
> flw.numberFormat(123456, "en-US", "currency", undefined, "USD")
// "$123,456.79"
> flw.numberFormat(123456, "en-US", "currency", "4", "USD")
// "$123,456.7890"
> flw.numberFormat(1, "en-US", "percent", undefined, undefined)
// "100%"
> flw.numberFormat(1, "es", "percent", undefined, undefined)
// "100 %"
> flw.numberFormat(1, "en-US", "percent", "3", undefined)
// "100.000%"
> flw.numberFormat(1, "es", "percent", "3", undefined)
// "100,000 %