Chapter Contents |
Previous |
Next |
pdval |
Portability: | SAS/C extension |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
ERRORS | |
DIAGNOSTICS | |
IMPLEMENTATION | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <packed.h> double pdval(const char (*val)[], unsigned int scale);
DESCRIPTION |
pdval
converts
val
, a number in packed-decimal
format, to its floating-point representation. The maximum length of
val
is 8 bytes (15 decimal digits). After conversion,
val
is multiplied by
pow(10.0, -scale)
.
scale
, which
specifies a scaling factor, must be a nonnegative integer less than or equal
to 15.
RETURN VALUE |
The return value is the double-precision,
floating-point representation of
val
, appropriately
scaled.
ERRORS |
If
val
does not contain valid packed-decimal data, an 0C7 ABEND results.
DIAGNOSTICS |
If
scale
is not positive and less than or equal to 15, then
pdval
returns
HUGE_VAL
and sets
errno
to EARG.
IMPLEMENTATION |
pdval
is defined in
<packed.h>
as
#define pdval(val, scale) _pdval(val, sizeof(*val), scale)
EXAMPLE |
#include <packed.h> #include <stdio.h> void printamt(char (*amount)[6]) /* expected COBOL data declaration: */ /* AMOUNT PIC 9(9)V99 COMP-3. */ { double dollars; /* Convert to dollars and cents. */ dollars = pdval(amount, 2); printf("Amount is $ % 12.2f\n", dollars); return; }
RELATED FUNCTIONS |
SEE ALSO |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.