将整数从 InFile 转换为 OutFile 作为 Cobol 中的浮点数

Convert integer from InFile to OutFile as float in Cobol

我有一个 InFile.dat,其中包含我存储在 SomeFile.cob 中的记录中的一些整数值。当我将它添加到 OutFile.dat 时,我无法将整数转换为浮点数。

FILE-SECTION.
*> In File:
01 someInt PIC 9. *> eg. 3

*> Out File:
01 PrintLine PIC X(75). *> for writing data to a line

WORKING-STORAGE SECTION.
01 someFloat PIC 9V99. 

PROCEDURE DIVISION. 
COMPUTE someFloat = someInt / 1
DISPLAY someFloat *> displays 3.00 (good) 
WRITE PrintLine FROM someFloat *> stored as 300 (not good)

如何将其作为浮点数存储在输出文件中?

PIC 9V99 不是 浮点数,而是 fixed-point 整数值,具有 保证 精度.

它不会将小数点存储在“内存中”,因此它不是输出文件的一部分,这很好(v 隐含的小数点 仅对 run-time 有效,具体取决于字段定义)。

要输出它,您可以使用明确用于输出的编辑字段(您不应该对其进行任何计算):

       01 someFixedPoint PIC 9V99.
       01 someEdited     PIC 9.99. *> use "," when DECIMAL-POINT IS COMMA

           MOVE someFixedPoint TO someEdited
           WRITE PrintLine FROM someEdited