如何在cobol中处理来自jcl的非格式化数字变量

问题描述 投票:0回答:1

我编写了一个非常简单的 COBOL 程序,该程序应该从 sysin dd * 获取数据并将其放入我的 WORKING-STORAGE 变量中,但它没有按预期工作。

问题是当我尝试将值 10 传递给 pic 9(10) 变量时, 在 jcl 中这样编码:

//sysin dd *
10
/*

我得到 1000000000 而不是 0000000010。有没有一种简单的方法可以使其在不更改输入数据的情况下工作?

提前致谢:)

cobol jcl
1个回答
0
投票

简单的方法是执行

MOVE FUNCTION NUMVAL (ALPHANUMERIC-SYSIN) TO NUMERIC-VAR
,可能随后检查结果是否不为零(无效数据和空数据以及实际的零都会出现这种情况。
根据编译器的版本(问题中缺少该信息),您可以使用
FUNCTION TEST-NUMVAL (ALPHANUMERIC-SYSIN)
进行单独的验证 - 或者完全自己完成。

© www.soinside.com 2019 - 2024. All rights reserved.