Informats |
Category: | Numeric |
See: | PBw.d Informat under Windows UNIX OpenVMS z/OS |
Syntax | |
Syntax Description | |
Details | |
Comparisons | |
Examples | |
Example 1: Reading Packed Decimal Data | |
Example 2: Creating a SAS Date with Packed Decimal Data |
Syntax |
PDw.d |
specifies the width of the input field.
Default: | 1 |
Range: | 1-16 |
specifies the power of 10 by which to divide the value. This argument is optional.
Range: | 0-10 |
Details |
The PDw.d informat is useful because many programs write data in packed decimal format for storage efficiency, fitting two digits into each byte and using only a half byte for a sign.
Note: Different operating environments store packed decimal values in different ways. However, PDw.d reads packed decimal values with consistent results if the values are created on the same type of operating environment that you use to run SAS.
The PDw.d format writes missing numerical data as -0. When the PDw.d informat reads -0, it stores it as 0.
Comparisons |
The following table compares packed decimal notation in several programming languages:
Language | Notation |
---|---|
SAS | PD4. |
COBOL | COMP-3 PIC S9(7) |
IBM 370 Assembler | PL4 |
PL/I | FIXED DEC |
Examples |
input @1 x pd4.;
Data Line* | Results |
---|---|
----+----1 |
|
0000128C |
128 |
* The data line is a hexadecimal representation of a binary number stored in packed decimal form. Each byte occupies one column of the input field. |
input mnth pd4.; date=input(put(mnth,6.),mmddyy6.);
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.