gpt4 book ai didi

cobol - 从 COBOL 文件中读取 float

转载 作者:行者123 更新时间:2023-12-03 19:42:42 26 4
gpt4 key购买 nike

我在文件中有定点数,每行一个,格式为 S9(6)V9(2)但是当他们真正被阅读时,我得到 non numeric尝试将它们放入数学运算时出错。更重要的是,当我尝试在程序中显示它们时,文件中写入的数字为 567123.45 在变量中保存为 +567123.04 .例如来自文件 的数字123.45 在变量中保存为 +123.45.00 并引发以下错误 'WS-VALUE' not numeric: '123.45 0'在数学运算过程中。这是为什么?
我正在使用 OpenCobolIDE 4.7.4 适用于 Windows。

编辑:
文件有以下形式的记录,以换行分隔(记录后由READ操作记录读取):

  01 WS-OPERATION.
05 WS-ID PIC A(2).
05 WS-CLIENT PIC 9(5).
05 WS-COUNTRY PIC A(4).
05 WS-VALUE PIC S9(6)V9(2).

最佳答案

原因是您尝试取消编辑字段。 567123.45数据不符合PIC S9(6)V9(2)但到 -9(6).9(2). - 内部存储数据与打印数据。

只需更改定义并使用 MOVE WS-VALUE TO WS-VALUE-INTERNAL (按照您的意愿定义)可能适用于特定的编译器(和特定的数据),但我会走不同的路线:

我建议到 始终验证数据 在对其进行处理之前(文件可能已损坏或外部编辑)。
至少检查简单的数字数据,如 WS-CLIENTIS NUMERIC或者对数据字段进行完整验证 WS-VALUE或至少使用 MOVE FUNCTION NUMVAL(WS-VALUE) TO WS-VALUE-INTERNAL .

关于cobol - 从 COBOL 文件中读取 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646296/

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