6.7.4.3 Legacy Numeric Formats
N 和 Z 数值格式用于与旧版文件格式兼容。它们有许多共同点:
- 输出四舍五入到最接近的可表示值,平局时远离零方向舍入。
- 过大而无法显示的数字输出为用星号(‘*’)填满的字段。
- 小数点始终隐式位于字段右边缘起指定数位的位置,但 Z 格式的输入允许显式小数点。
- 不可使用科学计数法。
- 系统缺失值输出为空格字段中的一个句点。在 Z 格式中,该句点位于隐式小数点的紧右侧;在 N 格式中,或在未要求小数位的 Z 格式中,则位于右端。即使小数点字符为逗号,也使用句点。
- 字段宽度范围可为 1 到 40。小数位数范围可为 0 到字段宽度,最大为 16。
- 当用于输入的旧版数值格式转换为输出格式时,它被更改为等价的 F 格式。如果指定了任意小数位,则字段宽度增加 1,以腾出小数点的位置。对于 Z 格式,字段宽度再增加 1 列,以腾出负号的位置。输出字段宽度上限为 40 列。
N Format
N 格式支持仅包含数字的字段的输入和输出。在输入时,前导或尾随空格、小数点或任何其他非数字字符都会导致该字段被读取为系统缺失值。作为一个特殊例外,在 DATA LIST FREE 或 DATA LIST LIST 上使用的 N 格式被视为等价的 F 格式。
在输出时,N 在字段左侧用零填充。负数像系统缺失值一样输出。
Z Format
Z 格式是 IBM 大型机上使用的“区位十进制”格式。Z 格式将符号编码为最后一位数字的一部分,该数字必须是下列之一:
0123456789
{ABCDEFGHI
}JKLMNOPQR
其中每一行的字符依次表示数字 0 到 9。前两行的字符表示正号;第三行的字符表示负号。
在输出时,Z 字段在左侧用空格填充。在输入时,前导和尾随空格被忽略。输入字段中除空格、上述数字字符以及‘.’之外的任何字符都会导致该字段被读取为系统缺失值。
输入和输出的小数点字符始终为‘.’,即使小数点字符为逗号(参见 SET DECIMAL)。
以 Z 格式输出的非零负值即使未输出任何非零数字也标记为负数。例如,-0.2 在 Z1.0 格式中输出为‘J’。大多数机器支持的“负零”值输出为正数。