palDfltin
palDfltin
- Convert free-format input into double precision floating point
- Description:
- Extracts a number from an input string starting at the specified
index.
- Invocation:
- void palDfltin( const char
string, int
nstrt,
double
dreslt, int
jflag );
- Arguments:
-
-
string = const char
(Given)
-
String containing number to be decoded.
-
nstrt = int
(Given and Returned)
-
Character number indicating where decoding should start.
On output its value is updated to be the location of the
possible next value. For compatibility with SLA the first
character is index 1.
-
dreslt = double
(Returned)
-
Result. Not updated when jflag=1.
-
jflag = int
(Returned)
-
status: -1 = -OK, 0 =
OK, 1 = null, 2 = error
- Notes:
- Uses the strtod() system call to do the parsing. This may lead to
subtle differences when compared to the SLA/F parsing.
- All "D" characters are converted to "E" to handle fortran exponents.
- Commas are recognized as a special case and are skipped if one happens
to be the next character when updating nstrt. Additionally the output
nstrt position will skip past any trailing space.
- If no number can be found flag will be set to 1.
- If the number overflows or underflows jflag will be set to 2. For overflow
the returned result will have the value HUGE_VAL, for underflow it
will have the value 0.0.
- For compatiblity with SLA/F -0 will be returned as "0" with jflag == -1.
- Unlike slaDfltin a standalone "E" will return status 1 (could not find
a number) rather than 2 (bad number).