如何验证作为字母数字文字传入的负值?

loc*_*nly 3 cobol gnucobol

基本上,我得到了一个输入文件,该文件也传入了字母数字和数字字段的混合。我的目标是测试每个字段的有效数据。第一个字段是一个带有 Pic X(3) 描述的字母数字,它应该代表一个数字。但是,因为我正在测试数据有效性,所以在某些情况下,该值可能包含一个字母,例如 0R1 或负值 -001。

测试数据时,使用“是数字”测试非常适合查找非数字值。但是,当传入一个负号时,它无法通过测试。我认为这是因为它识别出破折号或负号 (-) 不是数字字符。我的总体目标是测试数字是否既是数字又是正数,但鉴于上述情况,我无法进行正确的测试。

关于如何解决这个问题的任何建议?

谢谢

Sim*_*sch 6

FUNCTION TEST-NUMVAL(some-data)如果您需要对定义为字母数字/字母的任何内容进行良好检查,我建议使用;如果通过,您可以使用它FUNCTION NUMVAL(some-data)来获取实际值。

有关更多详细信息,您可以查看当前 COBOL 标准草案中的内容