COBOL DATATYPE CONVERSION:数字到包装数字,包装日期COMP-3

时间:2013-02-16 22:50:47

标签: java unix vbscript cobol packed-decimal

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

请解释或澄清我的疑问。

2 个答案:

答案 0 :(得分:4)

你倒退了。

正的packed decimal以C结尾。负的压缩小数以D结尾。无符号的压缩小数,假定为正数,以F结尾。

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

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

答案 1 :(得分:3)

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

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

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

您已标记Java和VBScript。您是否正在尝试将“Cobol”外部的转换呈现给Cobol程序?如果是这样,将数据呈现为具有“单独”符号的“纯文本”将更容易。拯救你不得不搞砸。 “类型转换”在Cobol中是自动的,用“纯文本”给程序提供所有内容更有意义,让Cobol继续使用它。

与具有小数位的任何内容相同。给出“缩放因子”或实际小数点。你将节省自己的时间,不要浪费任何时间为Cobol程序员,并为你自己创建测试数据 - 编辑。