如何使用屏幕部分接受 cobol 中的数值

How to accept numeric values in cobol using screen section

所以我正在尝试使用屏幕部分在 cobol 中制作一个简单的程序,它只会计算 2 个数字的总和。我使用的编译器是 OpenCobolIDE。问题是我收到一条错误消息,指出我的 WS-N1 变量不是数值。这是代码:

IDENTIFICATION DIVISION.
PROGRAM-ID.PGM001.

ENVIRONMENT DIVISION.

DATA DIVISION.

WORKING-STORAGE SECTION.
01 WS-N1    PIC 9(04).
01 WS-N2    PIC 9(04).
01 WS-SUM   PIC 9(04).
01 WS-DUMMY PIC X(01).
SCREEN SECTION.
01 INPUT-SCREEN.
    02 BLANK SCREEN.
    02 LINE 1  COL 1  VALUE "--------------------------------".
    02 LINE 2  COL 1  VALUE "-            INPUT             -".
    02 LINE 3  COL 1  VALUE "--------------------------------".
    02 LINE 4  COL 1  VALUE "-(1).NUMBER 1   :              -".
    02 LINE 4  COL 18 PIC 9(10) TO WS-N1.
    02 LINE 5  COL 1  VALUE "-(2).NUMBER 2   :              -".
    02 LINE 5  COL 18 PIC 9(10) TO WS-N2.
    02 LINE 6  COL 1  VALUE "--------------------------------".
01 OUTPUT-SCREEN.
    02 BLANK SCREEN.
    02 LINE 1  COL 1  VALUE "--------------------------------".
    02 LINE 2  COL 1  VALUE "-             SUM              -".
    02 LINE 3  COL 1  VALUE "--------------------------------".
    02 LINE 4  COL 1  VALUE "-(1).SUM        :              -".
    02 LINE 4  COL 18 PIC 9(04) FROM WS-SUM.
    02 LINE 5  COL 1  VALUE "--------------------------------".
    02 LINE 6  COL 1  VALUE "EXIT ->                         ".
PROCEDURE DIVISION.
A-100.
    DISPLAY INPUT-SCREEN.
    ACCEPT  INPUT-SCREEN.

    GO TO A-200.
A-200.
    ADD WS-N1 TO WS-N2 GIVING WS-SUM.

    GO TO A-300.
A-300.
    DISPLAY OUTPUT-SCREEN.
    ACCEPT  WS-DUMMY AT LINE 7 COL 8.
    STOP RUN.

我猜你在处理 ADD 语句时收到运行时错误消息(请编辑你的 post 以包含实际消息)。

我想只有当您输入的 var 中没有所有前导零时才会发生这种情况。

要使用您使用的编译器解决此问题,您必须在 ACCEPT INPUT-SCREEN 之后直接添加一个 MOVE FUNCTION NUMVAL (WS-N1) to WS-N1

顺便说一句:如果您使用 OCIDE 的标准 windows 安装,您将使用以下编译器:GnuCOBOL 1.1(官方 Mingw 包)