![]() 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.