Lightning Experience, Experience Builder Sites, Salesforce Mobile App, Lightning Out (Beta), Standalone Lightning App, Mobile Offline
A lightning:formattedNumber component displays formatted numbers for decimals, currency, and percentages. This component uses the Intl.NumberFormat JavaScript object to format numerical values. The locale set in your Salesforce user settings determines where to display spaces, commas, and periods in numbers, and the currency used by default. See the Usage Considerations section for limitations in some locales.
The component has several attributes that specify how number formatting is handled in your app. Among these attributes are minimumSignificantDigits and maximumSignificantDigits. Significant digits refer to the accuracy of a number. For example, 1000 has one significant digit, but 1000.0 has five significant digits. By default, lightning:formattedNumber displays the value 1000.0 as 1000. To display the decimal and trailing zero, set minimumSignificantDigits to 5.
Specify style="percent" to display the value multiplied by 100 as a percent value. Percentages default to 0 decimal places, with rounding. In this example, the formatted number displays as 50%.
To display the value as-is without multiplying it by 100, specify style="percent-fixed". In this example, the formatted number displays as 1% because decimal places are not displayed by default and the value is rounded.
When you specify the number in JavaScript without using a string, the component renders $123,456,789,012,345,680.00, which is a loss in precision.
1// Don't do this2// Large numbers result in precision loss3({4 doInit: function(cmp){5 var num = 123456789012345678;6 cmp.set("v.balance", num);7},8});
To prevent precision loss for large numbers, use a string instead.
1// Do this instead2// Specify a large number using a string3({4 doInit: function(cmp){5 var str = "123456789012345678";6 cmp.set("v.balance", str);7},8});
Usage Considerations
The locale set in your Salesforce user preferences determines how numbers are formatted. Some locales such as the Arabic (Lebanon) and Bangla (Bangladesh) locales also specify a numeral system other than the Hindu-Arabic numerals 0-9. The org permission “Show Hindu-Arabic Numbers” is intended to override a locale’s default numerals. However, lightning:formattedNumber displays the locale’s default numerals even when this permission is enabled in your org. See Supported Number, Name, and Address Formats (ICU).
To display your numbers correctly when the permission is enabled, use the $A.localizationService.formatNumber() JavaScript API. See AuraLocalizationService.
Attributes
Name
Description
Type
Default
Required
body
The body of the component. In markup, this is everything in the body of the tag.
Aura.Component[]
class
A CSS class for the outer element, in addition to the component's base classes.
String
currencyCode
Only used if style='currency', this attribute determines which currency is displayed. Possible values are the ISO 4217 currency codes, such as 'USD' for the US dollar.
String
currencyDisplayAs
Determines how currency is displayed. Possible values are symbol, code, and name. This value defaults to symbol.
String
symbol
maximumFractionDigits
The maximum number of fraction digits that are allowed.
Integer
maximumSignificantDigits
The maximum number of significant digits that are allowed. Possible values are from 1 to 21.
Integer
minimumFractionDigits
The minimum number of fraction digits that are required.
Integer
minimumIntegerDigits
The minimum number of integer digits that are required. Possible values are from 1 to 21.
Integer
minimumSignificantDigits
The minimum number of significant digits that are required. Possible values are from 1 to 21.
Integer
style
The number formatting style to use. Possible values are decimal, currency, percent, and percent-fixed. This value defaults to decimal.
String
decimal
title
Displays tooltip text when the mouse moves over the element.