我正在尝试将 Number 转换为 PACKED DEMCIMAL,从网络研究编号 123 将是 123D(如果为负数则为 C)作为打包数字,我的问题是“这是正确的 PACKED DEMCIMAL 吗?” 因为我有状态的要求,日期将存储在 3 字节的压缩数字中,长度只有 2 位。
请解释或清除我的疑问。
我正在尝试将 Number 转换为 PACKED DEMCIMAL,从网络研究编号 123 将是 123D(如果为负数则为 C)作为打包数字,我的问题是“这是正确的 PACKED DEMCIMAL 吗?” 因为我有状态的要求,日期将存储在 3 字节的压缩数字中,长度只有 2 位。
请解释或清除我的疑问。
你倒过来了。
正压缩十进制以 C 结尾。负压缩十进制以 D 结尾。假设为正的无符号压缩十进制以 F 结尾。
一个 3 字节的压缩数字包含 5 个数字和一个符号。PIC S9(5) COMP-3 是 3 个字节。
如果只有五位数,我不确定您的日期是什么格式。
PIC S999 或 S9(3) PACKED-DECIMAL 或 COMP-3 占用两个字节的存储空间。这有一个迹象。
PIC 999 或 9(3) 占用两个字节的存储空间,符号为“F”,表示无符号,始终视为正数。
每个数字占半个字节,半个字节用于“符号”——正如吉尔伯特所说,C 是正数,D 是负数。
您已标记 Java 和 VBScript。您是否正在尝试将“外部”Cobol 转换为将其呈现给 Cobol 程序?如果是这样,将数据显示为带有“单独”符号的“纯文本”会容易得多。省得你乱七八糟。“类型转换”在 Cobol 中是自动的,将所有内容以“纯文本”形式提供给程序并让 Cobol 继续处理会更有意义。
与任何有小数位的东西一样。给出“比例因子”或物理小数点。您将节省自己的时间,不会为 Cobol 程序员浪费任何时间,并且拥有为自己创建测试数据的好方法 - 编辑器。