1

我正在尝试将 Number 转换为 PACKED DEMCIMAL,从网络研究编号 123 将是 123D(如果为负数则为 C)作为打包数字,我的问题是“这是正确的 PACKED DEMCIMAL 吗?” 因为我有状态的要求,日期将存储在 3 字节的压缩数字中,长度只有 2 位。

请解释或清除我的疑问。

4

2 回答 2

4

你倒过来了。

压缩十进制以 C 结尾。负压缩十进制以 D 结尾。假设为正的无符号压缩十进制以 F 结尾。

一个 3 字节的压缩数字包含 5 个数字和一个符号。PIC S9(5) COMP-3 是 3 个字节。

如果只有五位数,我不确定您的日期是什么格式。

于 2013-02-16T23:16:40.843 回答
3

PIC S999 或 S9(3) PACKED-DECIMAL 或 COMP-3 占用两个字节的存储空间。这有一个迹象。

PIC 999 或 9(3) 占用两个字节的存储空间,符号为“F”,表示无符号,始终视为正数。

每个数字占半个字节,半个字节用于“符号”——正如吉尔伯特所说,C 是正数,D 是负数。

您已标记 Java 和 VBScript。您是否正在尝试将“外部”Cobol 转换为将其呈现给 Cobol 程序?如果是这样,将数据显示为带有“单独”符号的“纯文本”会容易得多。省得你乱七八糟。“类型转换”在 Cobol 中是自动的,将所有内容以“纯文本”形式提供给程序并让 Cobol 继续处理会更有意义。

与任何有小数位的东西一样。给出“比例因子”或物理小数点。您将节省自己的时间,不会为 Cobol 程序员浪费任何时间,并且拥有为自己创建测试数据的好方法 - 编辑器。

于 2013-02-16T23:29:36.637 回答