Cobol 如何检查给定长度的有效数字输入?
如何检查12位id号是否为数字,如果我的id为10位,但我的字段为12位数字,如何在COBOL中检查有效的12位id号?以下是一些演示代码和输出Cobol 如何检查给定长度的有效数字输入?,cobol,Cobol,如何检查12位id号是否为数字,如果我的id为10位,但我的字段为12位数字,如何在COBOL中检查有效的12位id号?以下是一些演示代码和输出 IDENTIFICATION DIVISION. PROGRAM-ID. CHECKNUMB. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-ID PIC 9(12). PROCEDURE DIVISION. MOVE 'abc' TO INPUT-
IDENTIFICATION DIVISION.
PROGRAM-ID. CHECKNUMB.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INPUT-ID PIC 9(12).
PROCEDURE DIVISION.
MOVE 'abc' TO INPUT-ID
PERFORM CHECK-CORRECT-12-NUMB
MOVE 001234567890 TO INPUT-ID
PERFORM CHECK-CORRECT-12-NUMB
MOVE 1234567890 TO INPUT-ID
PERFORM CHECK-CORRECT-12-NUMB
MOVE 12345678901 TO INPUT-ID
PERFORM CHECK-CORRECT-12-NUMB
MOVE 123456789012 TO INPUT-ID
PERFORM CHECK-CORRECT-12-NUMB
GOBACK.
CHECK-CORRECT-12-NUMB SECTION.
DISPLAY 'checking input: ' INPUT-ID
IF INPUT-ID IS NUMERIC
DISPLAY 'is numeric'
IF INPUT-ID > 99999999999
DISPLAY 'correct! 12 digits entered!'
ELSE
DISPLAY 'expected 12 digits!'
END-IF
ELSE
DISPLAY 'non numeric entered'
END-IF
DISPLAY '-------'
CONTINUE.
输出
checking input: 000000000abc
non numeric entered
-------
checking input: 001234567890
is numeric
expected 12 digits!
-------
checking input: 001234567890
is numeric
expected 12 digits!
-------
checking input: 012345678901
is numeric
expected 12 digits!
-------
checking input: 123456789012
is numeric
correct! 12 digits entered!
-------
你能提供一些代码来告诉我们你得到了多少吗?如果输入id是数字,那么将输入id移动到输出id,但如果输入id小于12位,则只检查数字,然后如何处理将代码(包括数据定义)添加到你的问题中。01输入id pic 9(12)。如果输入id仅为输入的10位数字,则编译器也接受为数字,但我需要12位数字,并带有有效的。谢谢。这需要进入问题,使用问题下的
edit
链接。还需要查看数据如何进入其中的代码,编译器/操作系统也会很有用。