将整数从 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
我有一个 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