Data, General

Guidelines for Currency Formatting (with ISO 4217 Table)

Guidelines for Currency Formatting (with ISO 4217 Table)
Table of Contents

If you’re designing the UX for a web or mobile application that contains monetary data for different locales, you might have questions about the differences in currency formats. Mainly, when to use currency codes vs. currency symbols or where to use a space or comma etc.

In this article, we’ll provide guidelines for currency formatting based on the ISO 4217 standard so that your application can handle different currencies correctly.

Make sure you are consistent. You should not 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. Normally, you will not use both the symbol and code e.g., €1.234.567,89 EUR.

ISO 4217 is the international standard for currency codes. We’ll share a table at the end of this article, checked against the ISO 4217 list maintained by SIX (September 2026 edition). It includes a three-letter alphabetic code for each currency. For example, USD is the code for US dollars, EUR is the code for Euros, and GBP is the code for British Pounds.

When to Use Currency Codes vs. Currency Symbols

Generally, you should use currency codes when displaying prices in multiple currencies side-by-side. This makes it easier for users to identify the currency for each price.

For example, if you’re displaying prices for a hotel room in both USD and EUR, you would use the currency codes to show that:

Room price: USD 100 / EUR 90

However, if you’re only displaying prices in a single currency, you can use the currency symbol. I have also seen a lot of graphics that use a symbol rather than the code. For example, if all prices on your site are in USD, you would use the dollar sign:

Room price: $100

Where to Use a Space or Comma

ISO 4217 only defines the codes and the number of minor-unit decimals. The decimal and thousands separators come from the user’s locale, not from the currency. The same EUR price is written 1.234,50 € in Germany, 1 234,50 € in France and €1,234.50 in Ireland, following the Unicode CLDR locale data that browsers and operating systems use.

Room price: EUR 90,00 (German or French locale)

Some currencies also differ in decimals. The Japanese Yen has no minor unit in ISO 4217, so you show whole numbers with a comma as the thousands separator:

Room price: JPY 9,000

Swiss Francs in a Swiss German locale use an apostrophe as the thousands separator and a full stop as the decimal separator:

Room price: CHF 1’234.50

In code, let the platform do this for you (for example, Intl.NumberFormat in JavaScript) instead of hard-coding separators per currency.

Conclusion

Following these guidelines for currency formatting will help ensure that your application can correctly handle different currencies from around the world. If you have any questions about implementing these guidelines, please feel free to leave a comment below.

Why Bitcoin Needs an ISO-Certified Currency Code

World Currency Formats and ISO 4217 Information

Currency Name ISO 4217 Code ISO 4217 Code Unit Names Unit Names Display Decimals
Alpha Numeric Major Minor
Afghanistan, Afghani AFN 971 afghani pul 2
Albania, Lek ALL 8 lek qindarka 2
Algerian Dinar DZD 12 dinar centime 2
Angola, Kwanza AOA 973 kwanza lwei 2
Argentine Peso ARS 32 peso centavo 2
Armenian Dram AMD 51 dram luma 2
Aruban Guilder AWG 533 guilder cent 2
Australian Dollar AUD 36 dollar cent 2
Azerbaijan Manat AZN 944 manat qäpik 2
Bahamian Dollar BSD 44 dollar cent 2
Bahraini Dinar BHD 48 dinar fils 3
Bangladesh, Taka BDT 50 taka paisa 2
Barbados Dollar BBD 52 dollar cent 2
Belarusian Ruble BYN 933 ruble kapeyka 2
Belize Dollar BZD 84 dollar cent 2
Bermudian Dollar BMD 60 dollar cent 2
Bhutan, Ngultrum BTN 64 ngultrum chetrum 2
Bolivia, Boliviano BOB 68 boliviano centavo 2
Bosnia and Herzegovina, Convertible Marks BAM 977 marka fenning 2
Botswana, Pula BWP 72 pula thebe 2
Brazilian Real BRL 986 real centavo 2
Brunei Dollar BND 96 ringgit sen 2
Burundi Franc BIF 108 franc centime 0
Cambodia, Riel KHR 116 new riel sen 2
Canadian Dollar CAD 124 dollar cent 2
Cabo Verde Escudo CVE 132 escudo centavo 2
Cayman Islands Dollar KYD 136 dollar cent 2
CFP Franc XPF 953 franc centime 0
Chilean Peso CLP 152 peso centavo 0
China Yuan Renminbi CNY 156 yuan renminbi jiao 2
Colombian Peso COP 170 peso centavo 2
Comoro Franc KMF 174 franc 0
Costa Rican Colon CRC 188 colon centimo 2
Cuban Peso CUP 192 peso centavo 2
Czech Koruna CZK 203 koruna haler 2
Danish Krone DKK 208 krone øre 2
Djibouti Franc DJF 262 franc centime 0
Dominican Peso DOP 214 peso centavo 2
East Caribbean Dollar XCD 951 dollar cent 2
Egyptian Pound EGP 818 pound piaster 2
El Salvador Colon SVC 222 colon centavo 2
Eritrea, Nakfa ERN 232 nakfa cent 2
Ethiopian Birr ETB 230 birr cent 2
Euro EUR 978 euro cent 2
Falkland Islands Pound FKP 238 pound pence 2
Fiji Dollar FJD 242 dollar cent 2
Franc Congolais CDF 976 franc centime 2
CFA Franc BEAC XAF 950 franc centime 0
Gambia, Dalasi GMD 270 dalasi butut 2
Georgia, Lari GEL 981 lari tetri 2
Ghana Cedi GHS 936 cedi 2
Gibraltar Pound GIP 292 pound pence 2
Guatemala, Quetzal GTQ 320 quetzal centavo 2
Guyana Dollar GYD 328 dollar cent 2
Haiti, Gourde HTG 332 gourde centime 2
Honduras, Lempira HNL 340 lempira centavo 2
Hong Kong Dollar HKD 344 dollar cent 2
Hungary, Forint HUF 348 forint 2
Iceland Krona ISK 352 króna aurar 0
Indian Rupee INR 356 rupee paise 2
Indonesia, Rupiah IDR 360 rupiah sen 2
Iranian Rial IRR 364 rial rials 2
Iraqi Dinar IQD 368 dinar fil 3
Jamaican Dollar JMD 388 dollar cent 2
Japan, Yen JPY 392 yen sen 0
Jordanian Dinar JOD 400 dinar fil 3
Kazakhstan, Tenge KZT 398 tenge tiyn 2
Kenyan Shilling KES 404 shilling cent 2
Kuwaiti Dinar KWD 414 dinar fil 3
Kyrgyzstan, Som KGS 417 som tyyn 2
Laos, Kip LAK 418 new kip at 2
Lebanese Pound LBP 422 pound (livre) piastre 2
Lesotho, Loti LSL 426 loti, pl., maloti lisente 2
Liberian Dollar LRD 430 dollar cent 2
Libyan Dinar LYD 434 dinar dirham 3
Macao, Pataca MOP 446 pataca avo 2
North Macedonia, Denar MKD 807 denar deni 2
Malagasy Ariary MGA 969 ariary 2
Malawi, Kwacha MWK 454 kwacha tambala 2
Malaysian Ringgit MYR 458 ringgit sen 2
Maldives, Rufiyaa MVR 462 rufiyaa lari 2
Mauritania, Ouguiya MRU 929 ouguiya khoums 2
Mauritius Rupee MUR 480 rupee cent 2
Mexican Peso MXN 484 peso centavo 2
Moldovan Leu MDL 498 leu, pl., lei 2
Mongolia, Tugrik MNT 496 tugrik mongo 2
Moroccan Dirham MAD 504 dirham centime 2
Mozambique Metical MZN 943 metical centavo 2
Myanmar, Kyat MMK 104 kyat pya 2
Namibian Dollar NAD 516 dollar cent 2
Nepalese Rupee NPR 524 rupee paise 2
Caribbean Guilder (Curaçao, Sint Maarten) XCG 532 guilder cent 2
New Israeli Shekel ILS 376 new shekel agorot 2
New Taiwan Dollar TWD 901 new dollar 2
Turkish Lira TRY 949 lira kurus 2
New Zealand Dollar NZD 554 dollar cent 2
Nicaragua, Cordoba Oro NIO 558 gold cordoba centavo 2
Nigeria, Naira NGN 566 naira kobo 2
North Korean Won KPW 408 won chon 2
Norwegian Krone NOK 578 krone øre 2
Pakistan Rupee PKR 586 rupee paisa 2
Panama, Balboa PAB 590 balboa centesimo 2
Papua New Guinea, Kina PGK 598 kina toea 2
Paraguay, Guarani PYG 600 guarani centimo 0
Peru, Sol PEN 604 sol centimo 2
Peso Uruguayo UYU 858 peso uruguayo centé 2
Philippine Peso PHP 608 peso centavo 2
Poland, Zloty PLN 985 zloty grosz 2
Pound Sterling GBP 826 pound pence 2
Qatari Rial QAR 634 riyal dirham 2
Rial Omani OMR 512 rial baiza 3
Romania, New Leu RON 946 leu (pl. lei) bani 2
Russian Ruble RUB 643 ruble kopeck 2
Rwanda Franc RWF 646 franc centime 0
Saint Helena Pound SHP 654 pound new pence 2
Samoa, Tala WST 882 tala sene 2
Sao Tome and Principe, Dobra STN 930 dobra centimo 2
Saudi Riyal SAR 682 riyal halalat 2
Serbian Dinar RSD 941 dinar 2
Seychelles Rupee SCR 690 rupee cent 2
Sierra Leone, Leone SLE 925 leone cent 2
Singapore Dollar SGD 702 dollar cent 2
Solomon Islands Dollar SBD 90 dollar cent 2
Somali Shilling SOS 706 shilling centesimi 2
South Africa, Rand ZAR 710 rand cent 2
South Korea, Won KRW 410 won chon 0
South Sudanese Pound SSP 728 pound 2
Sri Lanka Rupee LKR 144 rupee cent 2
Sudanese Pound SDG 938 pound piastre 2
Surinam Dollar SRD 968 dollar cent 2
Eswatini, Lilangeni SZL 748 emalangeni cent 2
Swedish Krona SEK 752 krona (pl. kronor) öre 2
Swiss Franc CHF 756 franken rappen 2
Syrian Pound SYP 760 pound piaster 2
Tajikistan, Somoni TJS 972 somoni 2
Tanzanian Shilling TZS 834 shilling cent 2
Thailand, Baht THB 764 baht satang 2
Tonga, Paanga TOP 776 pa’anga seniti 2
Trinidad and Tobago Dollar TTD 780 dollar cent 2
Tunisian Dinar TND 788 dinar millime 3
Turkmenistani New Manat TMT 934 manat tenga 2
UAE Dirham AED 784 dirham fil 2
Uganda Shilling UGX 800 shilling cent 0
Ukraine, Hryvnia UAH 980 Hryvnia kopiyka 2
Unidad de Fomento CLF 990 UF 4
US Dollar USD 840 dollar cent 2
Uzbekistan Sum UZS 860 som tiyin 2
Vanuatu, Vatu VUV 548 vatu centime 0
Venezuela, Bolívar Soberano VES 928 bolivar centimo 2
Venezuela, Bolívar Soberano (digital) VED 926 bolivar centimo 2
Viet Nam, Dong VND 704 new dong hao,xu 0
Yemeni Rial YER 886 rial fil 2
Zambia Kwacha ZMW 967 kwacha ngwee 2
Zimbabwe Gold ZWG 924 zimbabwe gold cent 2