COBOL十进制数学/业务逻辑

时间:2016-09-11 00:47:18

标签: cobol gnucobol

我错过了什么?

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.

当我执行此计算时,我的outTotal11.2发生了什么?

请使用online compiler查看可重现的结果,其中包含我的所有代码和文件。

1 个答案:

答案 0 :(得分:0)

你的代码绝对没有任何问题,除了它不是你发布的完整程序(没有分区或部分,你的数据没有级别,可能是其他我不能打扰测试的东西)

  

嗯,那个以及与在线编译器网站的链接早已消失的事实,再一次证明SO问题应完全自包含 all 需要的信息。在发布问题和答案时,我总是问自己,如果互联网的其他部分完全消失,它们是否仍然有用。

但是,使用同一个站点,以下程序(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)看,这个答案是自包含的,看看有多容易: - )