The function PARSE_CURRENCY takes a string and returns a currency.
This function parses a Currency from a string such as "$1.00". If the input string cannot be parsed into a Currency, PARSE_CURRENCY will return a Currency of zero U.S. dollars and a precision of two, See Working with Numbers and Currency in Airscript for more details.
Declaration
PARSE_CURRENCY(currency_string, locale) -> currency
Parameters
currency_string (required, type: string)
A string representing a currency.
locale (optional, type: string, default: "en-US")
The locale to use when parsing a currency symbol. For example, the string "$1.00" will be parsed as one U.S. dollar given a locale of "en-US", but will be parsed as one Canadian dollar when given a locale of "en-CA".Locale must match a valid LCID String.
Return Values
currency (type: currency)
A Currency with an amount/code that is parsed from currency_string, and an appropriate precision for the world currency that was parsed.
Examples
By default, when the locale parameter is omitted, the currency will be parsed using a locale of "en-US".
PARSE_CURRENCY("$1.00") -> {
amount: 100,
code: "USD",
precision: 2
}
With a locale of "en-CA", the dollar sign will be interpreted as Canadian dollars rather than U.S. dollars.
PARSE_CURRENCY("$1.00", "CAD") -> {
amount: 100,
code: "CAD",
precision: 2
}
If there is no currency symbol in the input string, U.S. dollars will be assumed.
PARSE_CURRENCY("1.00", "CAD") -> {
amount: 100,
code: "USD",
precision: 2
}
Regardless of the locale provided, the Euro symbol (€) will always be interpreted as Euros. The locale will be used only for disambiguation.
PARSE_CURRENCY("€1.00") -> {
amount: 100,
code: "EUR",
precision: 2
}
PARSE_CURRENCY("€1.00", "en-CA") -> {
amount: 100,
code: "EUR",
precision: 2
}
If a currency cannot be parsed, PARSE_CURRENCY will return a value of zero U.S. dollars.
PARSE_CURRENCY("Not a currency") -> {
amount: 0,
code: "USD",
precision: 2
}
This is true regardless of the provided locale.
PARSE_CURRENCY("Not a currency", "en-CA") -> {
amount: 0,
code: "USD",
precision: 2
}
Discussion
The PARSE_CURRENCY function is the logical opposite of the FORMAT_CURRENCY function. In most cases, formatting, and then parsing a Currency will return the original value. However, when there is ambiguity as to which world currency a symbol refers to, this may not be the case. For example, formatting, and then parsing Canadian dollars with a locale of "en-US" will return a Currency in U.S. dollars.
PARSE_CURRENCY(FORMAT_CURRENCY(CURRENCY(100, "CAD"))) -> {
amount: 100,
code: "USD",
precision: 2
}