在Cobol中将整数从InFile转换为OutFile作为float

在Cobol中将整数从InFile转换为OutFile作为float,cobol,Cobol,我有一个infle.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 someFlo

我有一个
infle.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)
如何将其作为浮点存储在输出文件中?

pic9v99
不是浮点,而是具有保证精度的定点整数值

它不会将小数点存储在“内存”中,因此它不是输出文件的一部分,这很好(根据字段定义,
v
是隐含的小数点,仅在运行时有效)

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

pic9v99
不是浮点,而是具有保证精度的定点整数值

它不会将小数点存储在“内存”中,因此它不是输出文件的一部分,这很好(根据字段定义,
v
是隐含的小数点,仅在运行时有效)

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


“float”并不意味着“潜在的非整数”;仅仅拥有小数并不能使某些东西成为浮点,而只能成为定点。浮点表示在每个数据值中都有一个指数(也称为比例因子)。COBOL标准根本不需要浮点,它取决于“处理器”(实现,通常是编译器),您没有指定。即使是2002年之前的语法也不是标准的,TTBOMK并没有得到广泛的实现。“float”并不意味着“潜在的非整数”;仅仅拥有小数并不能使某些东西成为浮点,而只能成为定点。浮点表示在每个数据值中都有一个指数(也称为比例因子)。COBOL标准根本不需要浮点,它取决于“处理器”(实现,通常是编译器),您没有指定。甚至语法在2002年之前都不是标准的,而TTBOMK并没有得到广泛的实现。
       01 someFixedPoint PIC 9V99.
       01 someEdited     PIC 9.99. *> use "," when DECIMAL-POINT IS COMMA

           MOVE someFixedPoint TO someEdited
           WRITE PrintLine FROM someEdited