In brief
Intl.NumberFormat formats numbers for a selected language and way of representation. It does not perform currency recalculation.
Useful to know
Intl.NumberFormat separates the numeric value from the way it is displayed. Through language and options, you can set decimals, percentage or currency format. This is more reliable than manually adding separators to any number. [1]
For example, new Intl.NumberFormat('bg-BG', {minimumFractionDigits: 2, maximumFractionDigits: 2}).format(1234.5) creates a Bulgarian representation with two characters after the decimal separator. The specific grouping sign may be a special interval; do not rely on plain space when comparing text.
If you specify style: 'currency' and currency: 'EUR', you choose how to write value in euros. This does not automatically convert an amount of another currency at an exchange rate. [1]
Keep the numbers as numbers while you calculate. Format to display at the end. The returned text is for the reader and is not suitable in itself as a universal format for re-numbering.
Sources
For further detail and to check the information: