The N and Z numeric formats provide compatibility with legacy file formats. They have much in common:
The N format supports input and output of fields that contain only
digits. On input, leading or trailing spaces, a decimal point, or any
other non-digit character causes the field to be read as the
system-missing value. As a special exception, an N format used on
DATA LIST FREE
or DATA LIST LIST
is treated as the
equivalent F format.
On output, N pads the field on the left with zeros. Negative numbers are output like the system-missing value.
The Z format is a “zoned decimal” format used on IBM mainframes. Z format encodes the sign as part of the final digit, which must be one of the following:
0123456789 {ABCDEFGHI }JKLMNOPQR
where the characters in each row represent digits 0 through 9 in order. Characters in the first two rows indicate a positive sign; those in the third indicate a negative sign.
On output, Z fields are padded on the left with spaces. On input, leading and trailing spaces are ignored. Any character in an input field other than spaces, the digit characters above, and ‘.’ causes the field to be read as system-missing.
The decimal point character for input and output is always ‘.’, even if the decimal point character is a comma (see SET DECIMAL).
Nonzero, negative values output in Z format are marked as negative even when no nonzero digits are output. For example, -0.2 is output in Z1.0 format as ‘J’. The “negative zero” value supported by most machines is output as positive.