CURRENCY

The function CURRENCY creates a value of the type Currency, which represents an amount, a currency type, and a precision.

This function creates a value of type Currency, it takes as arguments an amount, an optional currency code that specifies which world currency to create, and a precision indicating the size of the denomination.

For example, arguments of 1, "USD", and 0 would return a Currency that represents one U.S. dollar, while arguments of 100, "USD", and 2 would represent one-hundred U.S. pennies. While both Currencies represent the same monetary value, the latter will help avoid rounding errors.

See Working with Numbers and Currency in Airscript for more details. The List of Currency Codes table at the end of this article lists all valid currency codes, along with a recommended minimum precision.

Declaration

CURRENCY(amount, currency_code, precision) -> currency

Parameters

amount (required, type: number)

An integer representing the amount of the chosen currency_code multiplied by the precision.

currency_code (optional, type: string, default: "USD")

A code specifying which world currency to create. The default is "USD" for U.S. Dollars, "JPY" would represent Japanese Yen. See List of Currency Codes for a complete list of valid codes.

precision (optional, type: number, default: 2)

The precision to be used for the currency, ie. if the precision 3 and amount is 10454, the represented currency would be $10.454

Return Values

currency (type: currency)

The currency with provided, amount, code, and precision.

Examples

While currency is measured using a number, it also requires a unit. One U.S. dollar ("USD") is different from one Canadian dollar ("CAD")

CURRENCY(1, "USD", 0) -> {  
  amount: 1,  
  code: "USD",  
  precision: 0  
}  
CURRENCY(1, "CAD", 0) -> {  
  amount: 1,  
  code: "CAD",  
  precision: 0  
}

In addition to the currency code, providing a precision specifies the smallest denomination the Currency should take into account. For example, one U.S. dollar and one-hundred U.S. pennies represent the same monetary value, however, the latter is a better choice as it will help avoid rounding errors when working with the Currency.

CURRENCY(1, "USD", 0) -> {  
  amount: 1,  
  code: "USD",  
  precision: 0  
}  
CURRENCY(100, "USD", 2) -> {  
  amount: 100,  
  code: "USD",  
  precision: 2  
}

If the currency code and precision are omitted, the default will be to create the currency in U.S. pennies

CURRENCY(100) -> {  
  amount: 100,  
  code: "USD",  
  precision: 2  
}

Discussion

It is important to use the Currency type rather than a Number because there are rounding errors when working with decimal Numbers. For example the result of 0.1 + 0.2 is not 0.3 but rather 0.30000000000000004. Performing the same calculation with a precision of 2, will yield the correct result as there will be no decimal places.

10 + 20 -> 30

The table below lists the minimum recommended precision for each currency code in the second column. This number corresponds to the number of decimal places that are typically displayed for that currency. Note that some use cases may require a higher precision if more decimal places are needed.

List of Currency Codes

CodeMinimum Recommended PrecisionCurrencyLocations listed for this currency

AED

2

United Arab Emirates dirham

United Arab Emirates

AFN

2

Afghan afghani

Afghanistan

ALL

2

Albanian lek

Albania

AMD

2

Armenian dram

Armenia

ANG

2

Netherlands Antillean guilder

Curaçao (CW), Sint Maarten (SX)

AOA

2

Angolan kwanza

Angola

ARS

2

Argentine peso

Argentina

AUD

2

Australian dollar

Australia, Christmas Island (CX), Cocos (Keeling) Islands (CC), Heard Island and McDonald Islands (HM), Kiribati (KI), Nauru (NR), Norfolk Island (NF), Tuvalu (TV)

AWG

2

Aruban florin

Aruba

AZN

2

Azerbaijani manat

Azerbaijan

BAM

2

Bosnia and Herzegovina convertible mark

Bosnia and Herzegovina

BBD

2

Barbados dollar

Barbados

BDT

2

Bangladeshi taka

Bangladesh

BGN

2

Bulgarian lev

Bulgaria

BHD

3

Bahraini dinar

Bahrain

BIF

0

Burundian franc

Burundi

BMD

2

Bermudian dollar

Bermuda

BND

2

Brunei dollar

Brunei

BOB

2

Boliviano

Bolivia

BOV

2

Bolivian Mvdol (funds code)

Bolivia

BRL

2

Brazilian real

Brazil

BSD

2

Bahamian dollar

Bahamas

BTN

2

Bhutanese ngultrum

Bhutan

BWP

2

Botswana pula

Botswana

BYN

2

Belarusian ruble

Belarus

BZD

2

Belize dollar

Belize

CAD

2

Canadian dollar

Canada

CDF

2

Congolese franc

Democratic Republic of the Congo

CHE

2

WIR euro (complementary currency)

Switzerland

CHF

2

Swiss franc

Switzerland, Liechtenstein (LI)

CHW

2

WIR franc (complementary currency)

Switzerland

CLF

4

Unidad de Fomento (funds code)

Chile

CLP

0

Chilean peso

Chile

CNY

2

Chinese yuan

China

COP

2

Colombian peso

Colombia

COU

2

Unidad de Valor Real (UVR) (funds code)

Colombia

CRC

2

Costa Rican colon

Costa Rica

CUC

2

Cuban convertible peso

Cuba

CUP

2

Cuban peso

Cuba

CVE

2

Cape Verdean escudo

Cabo Verde

CZK

2

Czech koruna

Czechia

DJF

0

Djiboutian franc

Djibouti

DKK

2

Danish krone

Denmark, Faroe Islands (FO), Greenland (GL)

DOP

2

Dominican peso

Dominican Republic

DZD

2

Algerian dinar

Algeria

EGP

2

Egyptian pound

Egypt

ERN

2

Eritrean nakfa

Eritrea

ETB

2

Ethiopian birr

Ethiopia

EUR

2

Euro

Åland Islands (AX), European Union (EU), Andorra (AD), Austria (AT), Belgium (BE), Cyprus (CY), Estonia (EE), Finland (FI), France (FR), French Southern and Antarctic Lands (TF), Germany (DE), Greece (GR), Guadeloupe (GP), Ireland (IE), Italy (IT), Latvia (LV), Lithuania (LT), Luxembourg (LU), Malta (MT), French Guiana (GF), Martinique (MQ), Mayotte (YT), Monaco (MC), Montenegro (ME), Netherlands (NL), Portugal (PT), Réunion (RE), Saint Barthélemy (BL), Saint Martin (MF), Saint Pierre and Miquelon (PM), San Marino (SM), Slovakia (SK), Slovenia (SI), Spain (ES), Vatican City (VA)

FJD

2

Fiji dollar

Fiji

FKP

2

Falkland Islands pound

Falkland Islands (pegged to GBP 1:1)

GBP

2

Pound sterling

United Kingdom, Isle of Man (IM, see Manx pound), Jersey (JE, see Jersey pound), Guernsey (GG, see Guernsey pound), Tristan da Cunha (SH-TA)

GEL

2

Georgian lari

Georgia

GHS

2

Ghanaian cedi

Ghana

GIP

2

Gibraltar pound

Gibraltar (pegged to GBP 1:1)

GMD

2

Gambian dalasi

Gambia

GNF

0

Guinean franc

Guinea

GTQ

2

Guatemalan quetzal

Guatemala

GYD

2

Guyanese dollar

Guyana

HKD

2

Hong Kong dollar

Hong Kong

HNL

2

Honduran lempira

Honduras

HRK

2

Croatian kuna

Croatia

HTG

2

Haitian gourde

Haiti

HUF

2

Hungarian forint

Hungary

IDR

2

Indonesian rupiah

Indonesia

ILS

2

Israeli new shekel

Israel

INR

2

Indian rupee

India, Bhutan

IQD

3

Iraqi dinar

Iraq

IRR

2

Iranian rial

Iran

ISK

0

Icelandic króna

Iceland

JMD

2

Jamaican dollar

Jamaica

JOD

3

Jordanian dinar

Jordan

JPY

0

Japanese yen

Japan

KES

2

Kenyan shilling

Kenya

KGS

2

Kyrgyzstani som

Kyrgyzstan

KHR

2

Cambodian riel

Cambodia

KMF

0

Comoro franc

Comoros

KPW

2

North Korean won

North Korea

KRW

0

South Korean won

South Korea

KWD

3

Kuwaiti dinar

Kuwait

KYD

2

Cayman Islands dollar

Cayman Islands

KZT

2

Kazakhstani tenge

Kazakhstan

LAK

2

Lao kip

Laos

LBP

2

Lebanese pound

Lebanon

LKR

2

Sri Lankan rupee

Sri Lanka

LRD

2

Liberian dollar

Liberia

LSL

2

Lesotho loti

Lesotho

LYD

3

Libyan dinar

Libya

MAD

2

Moroccan dirham

Morocco, Western Sahara

MDL

2

Moldovan leu

Moldova

MGA

2[c]

Malagasy ariary

Madagascar

MKD

2

Macedonian denar

North Macedonia

MMK

2

Myanmar kyat

Myanmar

MNT

2

Mongolian tögrög

Mongolia

MOP

2

Macanese pataca

Macau

MRU

929

2[c]

Mauritanian ouguiya

MUR

2

Mauritian rupee

Mauritius

MVR

2

Maldivian rufiyaa

Maldives

MWK

2

Malawian kwacha

Malawi

MXN

2

Mexican peso

Mexico

MXV

2

Mexican Unidad de Inversion (UDI) (funds code)

Mexico

MYR

2

Malaysian ringgit

Malaysia

MZN

2

Mozambican metical

Mozambique

NAD

2

Namibian dollar

Namibia

NGN

2

Nigerian naira

Nigeria

NIO

2

Nicaraguan córdoba

Nicaragua

NOK

2

Norwegian krone

Norway, Svalbard and Jan Mayen (SJ), Bouvet Island (BV)

NPR

2

Nepalese rupee

Nepal

NZD

2

New Zealand dollar

New Zealand, Cook Islands (CK), Niue (NU), Pitcairn Islands (PN; see also Pitcairn Islands dollar), Tokelau (TK)

OMR

3

Omani rial

Oman

PAB

2

Panamanian balboa

Panama

PEN

2

Peruvian sol

Peru

PGK

2

Papua New Guinean kina

Papua New Guinea

PHP

2

Philippine peso

Philippines

PKR

2

Pakistani rupee

Pakistan

PLN

2

Polish złoty

Poland

PYG

0

Paraguayan guaraní

Paraguay

QAR

2

Qatari riyal

Qatar

RON

2

Romanian leu

Romania

RSD

2

Serbian dinar

Serbia

RUB

2

Russian ruble

Russia

RWF

0

Rwandan franc

Rwanda

SAR

2

Saudi riyal

Saudi Arabia

SBD

2

Solomon Islands dollar

Solomon Islands

SCR

2

Seychelles rupee

Seychelles

SDG

2

Sudanese pound

Sudan

SEK

2

Swedish krona/kronor

Sweden

SGD

2

Singapore dollar

Singapore

SHP

2

Saint Helena pound

Saint Helena (SH-SH), Ascension Island (SH-AC)

SLL

2

Sierra Leonean leone

Sierra Leone

SOS

2

Somali shilling

Somalia

SRD

2

Surinamese dollar

Suriname

SSP

2

South Sudanese pound

South Sudan

STN

930

2

São Tomé and Príncipe dobra

SVC

2

Salvadoran colón

El Salvador

SYP

2

Syrian pound

Syria

SZL

2

Swazi lilangeni

Eswatini

THB

2

Thai baht

Thailand

TJS

2

Tajikistani somoni

Tajikistan

TMT

2

Turkmenistan manat

Turkmenistan

TND

3

Tunisian dinar

Tunisia

TOP

2

Tongan paʻanga

Tonga

TRY

2

Turkish lira

Turkey

TTD

2

Trinidad and Tobago dollar

Trinidad and Tobago

TWD

2

New Taiwan dollar

Taiwan

TZS

2

Tanzanian shilling

Tanzania

UAH

2

Ukrainian hryvnia

Ukraine

UGX

0

Ugandan shilling

Uganda

USD

2

United States dollar

United States, American Samoa (AS), British Indian Ocean Territory (IO) (also uses GBP), British Virgin Islands (VG), Caribbean Netherlands (BQ – Bonaire, Sint Eustatius and Saba), Ecuador (EC), El Salvador (SV), Guam (GU), Marshall Islands (MH), Federated States of Micronesia (FM), Northern Mariana Islands (MP), Palau (PW), Panama (PA) (as well as Panamanian Balboa), Puerto Rico (PR), Timor-Leste (TL), Turks and Caicos Islands (TC), U.S. Virgin Islands (VI), United States Minor Outlying Islands (UM)

USN

2

United States dollar (next day) (funds code)

United States

UYI

0

Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code)

Uruguay

UYU

2

Uruguayan peso

Uruguay

UYW

4

Unidad previsional

Uruguay

UZS

2

Uzbekistan som

Uzbekistan

VES

2

Venezuelan bolívar soberano

Venezuela

VND

0

Vietnamese đồng

Vietnam

VUV

0

Vanuatu vatu

Vanuatu

WST

2

Samoan tala

Samoa

XAF

0

CFA franc BEAC

Cameroon (CM), Central African Republic (CF), Republic of the Congo (CG), Chad (TD), Equatorial Guinea (GQ), Gabon (GA)

XAG

.

Silver (one troy ounce)

XAU

.

Gold (one troy ounce)

XBA

.

European Composite Unit (EURCO) (bond market unit)

XBB

.

European Monetary Unit (E.M.U.-6) (bond market unit)

XBC

.

European Unit of Account 9 (E.U.A.-9) (bond market unit)

XBD

.

European Unit of Account 17 (E.U.A.-17) (bond market unit)

XCD

2

East Caribbean dollar

Anguilla (AI), Antigua and Barbuda (AG), Dominica (DM), Grenada (GD), Montserrat (MS), Saint Kitts and Nevis (KN), Saint Lucia (LC), Saint Vincent and the Grenadines (VC)

XDR

.

Special drawing rights

International Monetary Fund

XOF

0

CFA franc BCEAO

Benin (BJ), Burkina Faso (BF), Côte d'Ivoire (CI), Guinea-Bissau (GW), Mali (ML), Niger (NE), Senegal (SN), Togo (TG)

XPD

.

Palladium (one troy ounce)

XPF

0

CFP franc (franc Pacifique)

French territories of the Pacific Ocean: French Polynesia (PF), New Caledonia (NC), Wallis and Futuna (WF)

XPT

.

Platinum (one troy ounce)

XSU

.

SUCRE

Unified System for Regional Compensation (SUCRE)

XTS

.

Code reserved for testing

XUA

.

ADB Unit of Account

African Development Bank

XXX

.

No currency

YER

2

Yemeni rial

Yemen

ZAR

2

South African rand

Lesotho, Namibia, South Africa

ZMW

2

Zambian kwacha

Zambia

ZWL

2

Zimbabwean dollar

Zimbabwe

Last updated