Strings To Numbers: Data Type Conversion
the string for proper number format. The methods assume the string holds a perfect number, ready for conversion.
The Addition Operator: THE BIG GOTCHA
When attempting to add number data types to numbers stored as strings, your script will produce baffling results if you forget to first
convert the string data to numbers. One example of this common mistake is when attempting to add numbers which
came from form fields. The mistake is forgetting that form field values are string data types, not number data types.
Since the arithmetic operator
(+) is the same symbol as the string operator
number to the string.
This means that the number and the string-number will not
be added together mathematically, but instead pieced
together to form a new string.
2 + 2
2 + "2"
"2" + "2"
2 + 2 + "2"
To be sure your string-containing expression is evaluated properly, use a couple of very handy methods for converting strings to numbers -
for integers (whole numbers) and parseFloat()
for floating point numbers (contain decimals).
parseInt("2") + parseInt("2")
2 + parseInt("2")
Forced Conversion and Testing a Returned Value (Validation)
You can force conversion to number data type by performing a mathematical operation on a string. Simply subtract zero or multiply
by 1 (DON'T add anything!) to force conversion, and cause the expression to be evaluated by the interpreter.
The returned value will either by a valid number or NaN (not a number). If the returned value is NaN,
you know the string did not contain a valid number. The following example demonstrates this technique.
this.form.elements.value * 1
Since numbering systems are vast - versioning systems, naming conventions, date formats, money formats, phone number/zip code formats, etc.
etc., it would be extraneous, if not futile, to try to write a pre-conversion validation script attempting to cover all formats and conventions. Instead,
search the web for a regular expression script which suits your exact validation needs, then get on to conversion.