Currency Codes Reference
Active ISO 4217 currency codes and selected historical units, with symbols, decimal places, numeric codes, and the countries that use them. Includes practical implementation notes for Intl.NumberFormat.
94
Active Fiat Currencies
9
Zero Decimal
5
Three Decimal
4217
Standard (ISO)
Major Currencies
USD
United States Dollar
2 decimals
EUR
Euro
2 decimals
GBP
British Pound Sterling
2 decimals
JPY
Japanese Yen
0 decimals
CNY
Chinese Yuan Renminbi
2 decimals
INR
Indian Rupee
2 decimals
CHF
Swiss Franc
2 decimals
CAD
Canadian Dollar
2 decimals
AUD
Australian Dollar
2 decimals
SAR
Saudi Riyal
2 decimals
KWD
Kuwaiti Dinar
3 decimals
XAU
Gold (troy ounce)
4 decimals
Format Currency with Intl.NumberFormat
// Format a number as currency
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
}).format(1234567.89);
// โ "$1,234,567.89"
// German Euro
new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR',
}).format(1234567.89);
// โ "1.234.567,89 โฌ"// Symbol only (default)
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
currencyDisplay: 'symbol', // "$"
}).format(99.99);
// ISO code display
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'JPY',
currencyDisplay: 'code', // "JPY 12,346"
}).format(12345.6);
// Narrow symbol (no country prefix)
new Intl.NumberFormat('en-CA', {
style: 'currency',
currency: 'CAD',
currencyDisplay: 'narrowSymbol', // "$"
}).format(50);// JPY, KRW, VND, CLP have 0 minor units
// Intl handles this automatically
new Intl.NumberFormat('ja-JP', {
style: 'currency',
currency: 'JPY',
}).format(1234567);
// โ "ยฅ1,234,567" (no .00)
// Manual check using resolved options
const fmt = new Intl.NumberFormat('en-US', {
style: 'currency', currency: 'KWD',
});
fmt.resolvedOptions().minimumFractionDigits; // โ 3// Accounting style uses (n) for negatives
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
currencySign: 'accounting',
}).format(-1234.56);
// โ "($1,234.56)"
// No grouping (compact)
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
notation: 'compact',
}).format(1500000);
// โ "$1.5M"Decimal Places: The Developer Trap
0 Decimal Places
JPY, KRW, VND, CLP, CLP, PYG, ISK, XOF, XAF, UGX, KHR, MMK... Never send 1.50 as an amount โ use 150 only for 0-decimal currencies in payment APIs.
2 Decimal Places
The standard (USD, EUR, GBP, etc.). Amount in cents/pence. $15.00 โ 1500 in payment APIs like Stripe.
3 Decimal Places
Kuwaiti Dinar (KWD), Bahraini Dinar (BHD), Omani Rial (OMR), Jordanian Dinar (JOD), Tunisian Dinar (TND). Amount in thousandths (fils/millimes).
Full Currency Directory
Showing 100 of 100 fiat, metal, fund, and special-unit records, including selected historical units
| Symbol | Used In | Numeric | ||||
|---|---|---|---|---|---|---|
| AED | UAE Dirham | ุฏ.ุฅ | 2 | Asia | ๐ฆ๐ช | 784 |
| ALL | Albanian Lek | L | 2 | Europe | ๐ฆ๐ฑ | 008 |
| AMD | Armenian Dram | ึ | 2 | Europe | ๐ฆ๐ฒ | 051 |
| ARS | Argentine Peso | $ | 2 | Americas | ๐ฆ๐ท | 032 |
| AUD | Australian Dollar | A$ | 2 | Oceania | ๐ฆ๐บ๐จ๐ฝ๐จ๐จ๐ณ๐ท๐ณ๐ซ+2 | 036 |
| AZN | Azerbaijani Manat | โผ | 2 | Europe | ๐ฆ๐ฟ | 944 |
| BAM | Bosnia-Herzegovina Convertible Mark | KM | 2 | Europe | ๐ง๐ฆ | 977 |
| BDT | Bangladeshi Taka | เงณ | 2 | Asia | ๐ง๐ฉ | 050 |
| BGN | Bulgarian Lev (replaced by EUR in 2026)Historical | ะปะฒ. | 2 | Europe | 975 | |
| BHD | Bahraini Dinar | BD | 3 | Asia | ๐ง๐ญ | 048 |
| BOB | Bolivian Boliviano | Bs. | 2 | Americas | ๐ง๐ด | 068 |
| BRL | Brazilian Real | R$ | 2 | Americas | ๐ง๐ท | 986 |
| BYN | Belarusian Ruble | Br | 2 | Europe | ๐ง๐พ | 933 |
| CAD | Canadian Dollar | CA$ | 2 | Americas | ๐จ๐ฆ | 124 |
| CHF | Swiss Franc | Fr. | 2 | Europe | ๐จ๐ญ๐ฑ๐ฎ | 756 |
| CLP | Chilean Peso | $ | 0 | Americas | ๐จ๐ฑ | 152 |
| CNY | Chinese Yuan Renminbi | ยฅ | 2 | Asia | ๐จ๐ณ | 156 |
| COP | Colombian Peso | $ | 2 | Americas | ๐จ๐ด | 170 |
| CRC | Costa Rican Colรณn | โก | 2 | Americas | ๐จ๐ท | 188 |
| CUP | Cuban Peso | $ | 2 | Americas | ๐จ๐บ | 192 |
| CZK | Czech Koruna | Kฤ | 2 | Europe | ๐จ๐ฟ | 203 |
| DKK | Danish Krone | kr. | 2 | Europe | ๐ฉ๐ฐ๐ซ๐ด๐ฌ๐ฑ | 208 |
| DOP | Dominican Peso | RD$ | 2 | Americas | ๐ฉ๐ด | 214 |
| DZD | Algerian Dinar | ุฏ.ุฌ | 2 | Africa | ๐ฉ๐ฟ | 012 |
| EGP | Egyptian Pound | ยฃ | 2 | Africa | ๐ช๐ฌ | 818 |
| ETB | Ethiopian Birr | Br | 2 | Africa | ๐ช๐น | 230 |
| EUR | Euro | โฌ | 2 | Europe | ๐ฉ๐ช๐ซ๐ท๐ฎ๐น๐ช๐ธ๐ณ๐ฑ+20 | 978 |
| FJD | Fijian Dollar | FJ$ | 2 | Oceania | ๐ซ๐ฏ | 242 |
| GBP | British Pound Sterling | ยฃ | 2 | Europe | ๐ฌ๐ง๐ฏ๐ช๐ฌ๐ฌ๐ฎ๐ฒ๐ฌ๐ธ+1 | 826 |
| GEL | Georgian Lari | โพ | 2 | Europe | ๐ฌ๐ช | 981 |
Continue your localization implementation
Connect this reference to the format, validation, and testing guidance used elsewhere on the site.
Formatting implementation
Numbers, currencies, dates, time zones, numbering systems, and production tests.
Failure patterns
Hardcoded copy, broken layouts, missing context, bidi, and cultural adaptation.
Standards reference
ISO country, currency, and language codes; BCP 47; E.164; and UPU S42.
Validation coverage
Provider evidence, country test cases, geocoding, deliverability, and phone checks.
Locale-aware numbers
Separators, grouping, currency precision, and Intl.NumberFormat patterns.
Localization testing
Pseudolocalization, test matrices, native review, and regional release gates.
Address and phone standards
UPU S42, E.164, adaptive forms, storage, parsing, and validation.
I18n architecture
Messages, Unicode, RTL, locale services, fallbacks, and delivery workflow.
Address formats
Country templates, field order, and accessible international forms.
Phone formats
E.164 storage, regional display, parsing, and validation.
Compare locales
Inspect the same numeric value across several country formats.
Interactive tools
Try number, address, and phone formatting in your browser.