gpt4 book ai didi

COBOL 在对两个十进制数求和时抑制最后一个数字

转载 作者:行者123 更新时间:2023-12-02 00:10:47 25 4
gpt4 key购买 nike

根据下面的 COBOL 代码,当我尝试将 WS-NUM1 与 WS-NUM2 相加时,COBOL 似乎抑制了最后一个数字。例如:变量 WS-NUM1 和 WS-NUM2 是 10.15,我得到的结果是 20.20,但预期是 20.30。怎么了?

WS-NUM1 PIC 9(2)V99.
WS-NUM2 PIC 9(2)V99.
WS-RESULTADO PIC 9(2)V99.

DISPLAY "Enter the first number:"
ACCEPT WS-NUM1.
DISPLAY "Enter the second number:"
ACCEPT WS-NUM2.
COMPUTE WS-RESULTADO = WS-NUM1 + WS-NUM2.

提前致谢。

最佳答案

PIC 9(2)v99 定义了一个隐含小数位的变量,而不是真正的小数位。您正在尝试输入包含小数点的数据,但它不起作用,因为您必须去掉“.”。使数据的数字部分适合工作存储区域占用的 4 个字节。

   PROGRAM-ID. ADD2.

data division.
working-storage section.

01 ws-num-input pic x(5).

01 WS-NUM1 PIC 9(2)V99 value 0.
01 redefines ws-num1.
05 ws-high-num pic 99.
05 ws-low-num pic 99.

01 WS-NUM2 PIC 9(2)V99 value 0.
01 redefines ws-num2.
05 ws-high-num2 pic 99.
05 ws-low-num2 pic 99.

01 WS-RESULTADO PIC 9(2)V99.

PROCEDURE DIVISION.
DISPLAY "Enter the first number:"
*
accept ws-num-input
unstring ws-num-input delimited by '.'
into ws-high-num, ws-low-num

DISPLAY "Enter the second number:"
accept ws-num-input
unstring ws-num-input delimited by '.'
into ws-high-num2, ws-low-num2
*
COMPUTE WS-RESULTADO = WS-NUM1 + WS-NUM2.
DISPLAY WS-RESULTADO
STOP RUN
.

这只是一个简单的演示。在现实世界的应用程序中,您必须确保进行更可靠的编辑,以确保输入有效的数字数据。

关于COBOL 在对两个十进制数求和时抑制最后一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59198199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com