Коды валют (ISO 4217)
Пригодится при создании форм оплаты, таблиц курсов валют и экспорта счетов.
| Валюта | Код | Символ | Знаков после запятой |
|---|---|---|---|
| доллар США | USD | $ | 2 |
| евро | EUR | € | 2 |
| британский фунт | GBP | £ | 2 |
| японская иена | JPY | ¥ | 0 |
| китайский юань | CNY | ¥ / 元 | 2 |
| гонконгский доллар | HKD | HK$ | 2 |
| тайваньский доллар | TWD | NT$ | 2 |
| южнокорейская вона | KRW | ₩ | 0 |
| швейцарский франк | CHF | CHF | 2 |
| канадский доллар | CAD | C$ | 2 |
| австралийский доллار | AUD | A$ | 2 |
| новозеландский доллар | NZD | NZ$ | 2 |
| сингапурский доллар | SGD | S$ | 2 |
| индийская рупия | INR | ₹ | 2 |
| индонезийская рупия | IDR | Rp | 2 |
| тайский бат | THB | ฿ | 2 |
| вьетнамский донг | VND | ₫ | 0 |
| малайзийский ринггит | MYR | RM | 2 |
| филиппинское песо | PHP | ₱ | 2 |
| бразильский реал | BRL | R$ | 2 |
| мексиканское песо | MXN | Mex$ | 2 |
| аргентинское песо | ARS | $ | 2 |
| турецкая лира | TRY | ₺ | 2 |
| российский рубль | RUB | ₽ | 2 |
| саудовский риял | SAR | ﷼ | 2 |
| дирхам ОАЭ | AED | د.إ | 2 |
| южноафриканский рэнд | ZAR | R | 2 |
| польский злотый | PLN | zł | 2 |
| шведская крона | SEK | kr | 2 |
| норвежская крона | NOK | kr | 2 |
| датская крона | DKK | kr | 2 |
Примечания
- Дробные единицы следуют ISO 4217 для наличных сумм; криптовалюты и некоторые системы отличаются.
- Символы совпадают (например, $); храните трёхбуквенный код.
Что именно определяет стандарт ISO 4217
ISO 4217 — это международный стандарт, который присваивает каждой валюте трёхбуквенный код, цифровой код и фиксированное количество знаков после запятой. Буквы не случайны: первые две обычно обозначают страну или регион, а третья — название валюты, поэтому USD означает долларов США, JPY — японскую иену, а EUR — евро. Стандарт также фиксирует минорную единицу — количество цифр после десятичной точки, — именно её используют программы для правильного округления сумм. Когда в системе говорят «хранить код», имеется в виду алфавитный код ISO 4217, а не символ, и это различие предотвращает целый класс ошибок при расчётах.
Почему одного символа недостаточно
Символы валют неоднозначны, в отличие от кодов. Знак доллара используется для долларов США, Канады, Австралии, Новой Зеландии, Гонконга, Сингапура и ряда других стран; знаки иены и юаня пересекаются; знак фунта означает как британский фунт стерлингов, так и несколько других валют. Надпись «$10» вообще не говорит о том, какой именно валютой она выражена. В инвойсах, API и базах данных хранение трёхбуквенного кода полностью устраняет неоднозначность, а символ становится лишь деталью оформления, которая выбирается при выводе в зависимости от аудитории. Для любой системы, работающей с международными платежами, правило просто: хранить код, отображать символ.
Минорные единицы, экспоненты и округление
Количество знаков после запятой — это свойство конкретной валюты, а не глобальный параметр системы. Большинство валют используют два знака, поэтому доллары, евро, фунты и юани всех имеют центы. Однако иена и корейская вона не имеют минорных единиц — 100 йен это сто целых, без дробной части, — тогда как ряд валют на базе динара, включая кувейтский динар, бахрейнский динар, оманский риал и тунисский динар, используют три знака. У некоторых валют также различаются минорные единицы для наличных расчётов и для бухгалтерского учёта. Ошибочное округление в этих случаях может давать разницу в сто раз, поэтому всегда берите значение экспоненты из стандарта, а не полагайтесь на предположение о двух знаках.
Краткий код и длинный список исключений
За handful крупных валют в любой справочной таблице скрываются сложные случаи. Валюты подвергаются деноминации — как в Зимбабве, где обнуляли нули не один раз, — а устаревшие коды сохраняются в исторических данных. Некоторые территории используют валюту другой страны полностью, поэтому местного кода нет. Криптовалюты намеренно не входят в ISO 4217 и используют собственные тикеры, поэтому система, обрабатывающая и фиатные, и криптоактивы, должна знать, в каком пространстве имён она работает. Несколько валют носят одинаковое название в разных странах, но имеют разные коды и стоимость. Практический вывод прост: код остаётся стабильным идентификатором, тогда как символы, названия и даже количество знаков после запятой могут меняться.
Частые вопросы
- Для какой валюты код EUR?
- EUR — это код ISO 4217 для евро, валюты большинства стран ЕС. Его символ — €.
- Какой код у валюты Японии?
- Японская иена имеет код ISO 4217 JPY и символ ¥. У неё нет знаков после запятой.
- Почему лучше хранить трёхбуквенный код, а не символ?
- Символы совпадают: $ может означать USD, CAD, AUD и другие. Трёхбуквенный код ISO 4217 однозначен.