# PARSE_NUMBER

Chandra Bergmann

#### The function PARSE_NUMBER converts a String containing numeric digits into a Number.

This function accepts a String and parses any numeric digits into a Number. If a Number cannot be parsed from the String, then zero is returned. Any non-numeric characters in the String are ignored.

### Declaration

PARSE_NUMBER(string_containing_a_number) -> parsed_number

### Parameters

string_containing_a_number (required, type: string)
The string to parse the number from.

### Return Values

parsed_number (type: number)
The resulting number.

### Examples

Although capable of much more, when given a string that contains a number, PARSE_NUMBER will return the number.

PARSE_NUMBER("299792458") -> 299792458

The PARSE_NUMBER function will ignore additional characters between numbers such as thousandths

PARSE_NUMBER("299,792,458") -> 299792458

The PARSE_NUMBER function will interpret a period character ('.') as separating the decimal portion of the number.

PARSE_NUMBER("3.141592653589793") -> 3.141592653589793

We saw earlier that the PARSE_NUMBER function will ignore thousandths separators, it will in fact, ignore any non-numeric character.

PARSE_NUMBER("299hello792458") -> 299792458

When PARSE_NUMBER is given a string that does not contain a number, it returns zero.

PARSE_NUMBER("not a number") -> 0

When encountering a numeric character that can no longer be a part of a number, PARSE_NUMBER will omit any digits from the rest of the String.

PARSE_NUMBER("1.1.0") -> 1.1

This allows parsing numbers that may include additional text, for example, the period at the end of the first sentence stops the number parsing in this example.

PARSE_NUMBER("This is a number 1.1. 5 is another number.") -> 1.1

### Discussion

Unlike other parsing functions, the PARSE_NUMBER function is spiritually the opposite of the FORMAT_NUMBER function, this relation is not exact. For example, the PARSE_NUMBER function cannot parse exponential notation that the FORMAT_NUMBER function generates.

PARSE_NUMBER("1e-2") -> 1

Another difference is that the PARSE_NUMBER function is locale un-aware. If a number has been formatted with a European locale that uses periods for thousandths groupings, and commas to separate the decimal, the PARSE_NUMBER will return an incorrectly interpret the first period as a decimal separator.

PARSE_NUMBER("299.792.458") -> 299.792