在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