0

我错过了什么?

QualityPoints PIC 9v99 VALUE 4.00.
XValue        PIC 9v99 VALUE 3.00.
Total         PIC 999v99.
outTotal      PIC zz9V99.

COMPUTE Total = QualityPoints * XValue.
MOVE Total to outTotal.

当我执行此计算时,我outTotal发生11.2了什么?

请使用在线编译器查看可重现的结果,该编译器包含我所有的代码和文件。

4

1 回答 1

0

您的代码绝对没有任何问题,除了它不是您发布的完整程序(没有部门或部分,您的数据没有级别,可能还有其他我无法打扰测试的事情)

好吧,那个和在线编译器站点的链接早已消失的事实再次证明 SO 问题应该是完全独立的,包含所需的所有信息。在发布问题和答案时,我总是问自己,如果互联网的其余部分完全消失,它们是否仍然有用。

但是,使用同一站点,以下程序(a) 确实按预期工作:

IDENTIFICATION DIVISION.
PROGRAM-ID. PAX-DIABLO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 QualityPoints PIC 9v99 VALUE 4.00.
01 XValue        PIC 9v99 VALUE 3.00.
01 Total         PIC 999v99.
01 outTotal      PIC zz9.99.

PROCEDURE DIVISION.
COMPUTE Total = QualityPoints * XValue.
MOVE Total to outTotal.
DISPLAY outTotal.
STOP RUN.

根据以下成绩单,它会产生预期的答案:

$cobc -x -free *.cobc -o main
$main
 12.00

(a)看,这个答案是独立的,看看这有多容易:-)

于 2018-04-08T05:03:45.673 回答