- NAME
STRNUMBER()
- PURPOSE
Function to determine if a string is a valid numeric value.
- EXPLANATION
A string is considered a valid numeric value if IDL can convert it
to a numeric variable without error.
- CALLING SEQUENCE
result = strnumber( st, [val, /HEX] )
- INPUTS
st - any IDL scalar string
- OUTPUTS
1 is returned as the function value if the string st has a
valid numeric value, otherwise, 0 is returned.
- OPTIONAL OUTPUT
val - (optional) value of the string. double precision unless /L64 is set
- OPTIONAL INPUT KEYWORD
/HEX - If present and nonzero, the string is treated as a hexadecimal
longword integer.
/L64 - If present and nonzero, the val output variable is returned
as a 64 bit integer. This to ensure that precision is not
lost when returning a large 64 bit integer as double precision.
This keyword has no effect on the function result.
/NAN - if set, then the value of an empty string is returned as NaN,
by default the returned value is 0.0d. In either case,
an empty string is considered a valid numeric value.
- EXAMPLES
IDL> res = strnumber('0.2d', val)
returns res=1 (a valid number), and val = 0.2000d
- NOTES
(1) STRNUMBER was modified in August 2006 so that an empty string is
considered a valid number. Earlier versions of strnumber.pro did not
do this because in very early (pre-V4.0) versions of IDL
this could corrupt the IDL session.
(2) STRNUMBER will return a string such as '23.45uyrg' as a valid
number (=23.45) since this is how IDL performs the type conversion. If
you want a stricter definition of valid number then use the VALID_NUM()
function.
- HISTORY
version 1 By D. Lindler Aug. 1987
test for empty string, W. Landsman February, 1993
Hex keyword added. MRG, RITSS, 15 March 2000.
An empty string is a valid number W. Landsman August 2006
Added /NAN keyword W. Landsman August 2006
Added /L64 keyword W. Landsman Feb 2010