International Currency Formatting Guidelines — Currency Codes

While developing a web application that presents monetary data for a variety of locales, I am inquiring about the differences of currency formats. In particular, I'd like to know when it is appropriate to use currency codes, either in addition to or instead of currency symbols.

It's my understanding that all mainstream currencies require that a currency symbol be included, but some show them in different order (as seen on this website). The four currencies that I facilitate in my application are USD, CAD, GBP, and EUR — all of which have the same general currency format.

It makes sense to include the currency codes for USD and CAD, since they have the same currency code, but what about the others? What's the norm in these other countries?

I have below what I think to be the correct formats. Please let me know if I have made any mistakes:

• United States  — \$1,234,567.89 USD
• Great Britain   — £1,234.567.89 GBP not £1.234,89 (ever)
• European        — €1.234.567,89 EUR

Also, should there ever be spaces between the currency symbols and the numbers? That is yet another thing I do know happens sometimes, but am not sure what the rules are.

• Ireland would write `EUR 1.234.567,89` as `EUR 1,234,567.89`: so a) use US/British commas and periods, and b) only use `€` or `EUR` not both. Jul 19, 2011 at 20:03
• While I agree that using `€` and `EUR` both is strange, I think I have to for consistency in this case. It's good to know that in other applications that's not what one should do. Jul 20, 2011 at 21:48
• Not all of the countries use those types of format, Display Formats Some like Chile for example, don't use decimals, thus don't need decimal separators. Jan 13, 2015 at 20:04
• Don't forget ₹1,23,45,678.90 INR `:)`
Sep 7, 2016 at 14:37
• How can I get all countries, currency formats? Apr 2, 2020 at 13:37

I'll just answer for the Euro:

European — €1.234.567,89 EUR

Normally you'd use either the euro symbol or the 3-letter abbrevation, not both at the same time. The combination looks a bit odd, but is perfectly understandable.

The style guide used by the institutions of the European Union includes rules for expressing monetary units. The most important ones:

• Use the written name ('an amount in euros') when a monetary unit is referred to generally but an amount is not included
• ISO code ‘EUR’ followed by a fixed space and the amount in figures in written text (compulsory in legal texts). (In English, Irish, Latvian and Maltese. In all other official EU languages the order is reversed: 250 EUR).
• The euro sign € is primarily used in graphics. However, its use is also permitted in popular works and promotional publications (e.g. sales catalogues). No space after the euro sign: €35.

My personal preference would be €1.234.567,89 for most texts (that feels most natural and familiar) and 1.234.567,89 EUR for legal/formal documents (or EUR 1.234.567,89 when written in English).

• What about ranges? I wonder if this use of the sign would be correct to say 0,10 to 1 euros: €0,10 - €1
– GV3
Jan 31, 2017 at 22:34
• What about displaying a negative amount in a region where negative monetary amounts are typically displayed with parenthesis around them? Would it be something like `Balance: (EUR 1234.42)` or `Balance: EUR (1234.43)` or something else? Mar 7, 2019 at 21:05

First of all, you need to be consistent. You can't show the currency code for some currencies but not for others, just because they don't have a unique symbol. You also can't rely on all your users knowing the symbols.

Regarding the format - maybe I'm misinterpreting your question, but it seems like you want to present each currency in the format customary in that country. This is not a good idea - the format isn't part of the currency, it's a regional preference. The same differences exist for math notation (commas vs. full stops as group and decimal separators), but we don't go citing the number of people in Russia as XXX.XXX,00 and in the US as XXX,XXX.00 :). Just as we don't change the time or date formats to reflect the preferences of the country we're referring to. The format should reflect the regional preferences of the user's location, not the subject.

• You make a good point of the format reflecting the location of the user. The application assumes that the currency a user selects reflects their location, though, so I think I'm good. Jul 20, 2011 at 21:47

Depending on the country, in Europe we use the symbol € on the right, like this: 3.000,00 €

For example in Spain, Germany and France it goes usually on the right but in Italy goes on the left.

• I'm from Italy and I can say that it is also acceptable on the right. Personally I prefer it on the right, since it is normal for other units to be on the right. I have also noticed that amazon.it writes prices like this `10,00 €`. Jun 26, 2020 at 11:53

I can't speak for other countries, but your presentation format for GBP is wrong - the group separator is the comma and the fractional separator is a full stop i.e.

• £1.234.567,89 - wrong
• £1,234,567.89 - correct

Actually, the page you linked to does show the UK presentation format correctly.

• I'll second this. The one to watch is German as it uses commas and dots the opposite way around. I once worked on a software system with a web interface which had been developed in Germany: its back end processing didn't like Brits using it one bit as it tried to interpret big numbers as very small ones... Jul 19, 2011 at 12:12

At least in Germany, the normal separator is a space:

``````€ 1 234 567,89.
``````

(Make sure to use a non-breaking space, though: `nbsp;`).

However, `1.234,00` is perfectly understable, while `1.234` would be confusing.

Sources:

• Wikipedia uses `'` or `(space)` for Switzerland/Liechtenstein (not Germany)
• ISO 1000 (SI system used in physics) recommends to use either `,` or `.` as decimal seperator, and a narrow space as thousand seperator. (Deprecated since 2009 in favor of ISO/IEC 80000-1)
• Cannot upvote (less reputations), but this is incorrect. Closest call is french formation with `1 234 567.89 €`. Other EUR countries format `1,234,567.89 €` Jul 17, 2018 at 12:32
• This is totally incorrect. I live (and code) in Germany and here we use `.` (dot) for thousand and `,` (comma) for decimal separators. The French are the ones using space for thousand separator (honestly, it looks awful...) Sep 16, 2019 at 17:26
• Using a no-break space as the thousands separator and a comma `,` as the decimal separator is common not in Germany, but in Poland. I’ve lived in both countries and regularly construct legal documents. Mar 4, 2021 at 12:36