COBOL字符串的操作 联系客服

发布时间 : 星期六 文章COBOL字符串的操作更新完毕开始阅读c18b18506529647d2628525e

下面使用NUMVAL的用法。 ....

DATA DIVISION.

WORKING-STORAGE SECTION. 01 SOURCE-STR-1 PIC X(10). 01 SOURCE-STR-2 PIC X(10). 01 RESULT PIC S99V99. 01 RESULT-DPL PIC $$$.99. *

PROCEDURE DIVISION.

MOVE '-10.50' TO SOURCE-STR-1. MOVE '12.80' TO SOURCE-STR-2. COMPUTE RESULT =

FUNCTION NUMVAL(SOURCE-STR-1) + FUNCTION NUMVAL(SOURCE-STR-2). MOVE RESULT TO RESULT-DPL. DISPLAY 'RESULT :',RESULT-DPL. STOP RUN. 输出结果是: RESULT :$2.30

FUNCTION NUMVAL 语句将以上两个变量中的字符串转换成具体数值。并将这两个具体数值相加后将结果存入RESULT变量中。RESULT 变量被定义为一个Signed Numbers符号类型数据,保存的是具体数值。

程序最后将RESULT变量中的具体数值MOVE到RESULT-DPL变量中以用于输出。RESULT-DPL变量被定义为一个Numeric Edited Fields格式输出类型。因此,这里相当于又将具体数值转换回成了字符串。

NUMVAL-C相当于是NUMVAL的扩展。当原始字符串出现以下情况时,必须使用NUMVAL-C选项。

原始字符串中有货币流通符号$。 原始字符串中有分隔符逗号。 另外,无论NUMVAL还是NUMVAL-C都允许原字符串中出现正负号。并且,转换后的实际是指遵循原字符串中所指定的正负性。

当需要从键盘输入具体数值时,用FUNCTION 的输入方式会更加方便。假设输入数值所被保存的变量为INPUT-DATA,该变量定义如下。 01 INPUT-DATA PIC S999V99.

如令该变量中的数值通过键盘输入的语句如下。 ACCEPT INPUT-DATA FROM CONSOLE 此时用户需要在键盘上输入的数据必须严格按照INPUT-DATA定义的格式来进行。例如,当用户需要输入2.50和-100.00这两个数值时,输入方式必须为: +002.50 -100.00

当使用将字符串转换为具体数值的方式时,代码可以做如下更改。 01 INPUT-STR PIC X(10). 01 INPUT-DATA PIC S999V99. .... ACCEPT INPUT-STR FROM CONSOLE. COMPUTE INPUT-DATA=FUNCTION NUMVAL(INPUT-STR).

只要如下输入方式即可: 2.50 -100