Cobol 如何检查给定长度的有效数字输入?

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-

如何检查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-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
链接。还需要查看数据如何进入其中的代码,编译器/操作系统也会很有用。