COBOL言語の関数「NUMVAL」について理解しよう!|用語辞典

COBOL(コボル)言語の予約語NUMVALを使った数字型への変換とは

辞典・辞書-NUMVAL-イメージ

COBOL(コボル)言語のNUMVAL関数とは?

COBOL(コボル)の組込み関数であるNUMVAL関数は、英数字型の数値データを数字型に変換したい場合に使用します。COBOL言語には基本項目として、英字項目、数字項目、英数字項目、日本語項目があり、それぞれ用途に合わせて区別して項目定義を行う必要があります。文字列編集等が中心になるCOBOL言語では、通常、英数字項目で項目定義する事が多いですが、演算が必要な場合には数字型を用いる必要があります。今回ご紹介するNUMVAL関数は英数字型で定義した項目に対して演算を行いたい場合に活用できます。では早速COBOL言語での使い方について見ていきましょう。

書き方(NUMVAL関数):

FUNCTION NUMVAL(引数1)

・関数の型:数字型

・引数1:数字型に変換する文字定数または英数字型の項目を指定します。合計桁数は18桁以下とする必要があります。

・戻り値:引数1が表す最大18桁の数値です。

使用例:

辞典・辞書-NUMVAL-使用例

実行結果:

辞典・辞書-NUMVAL-実行結果

NUMVAL関数のCOBOL(コボル)言語における基本事項やルールについて

1.「NUMVAL」の間の空白や改行は、自由に設定できます。

2.組込み関数の前には予約語「FUNCTION」を指定する必要があります。

3.引数1は英数字または英数字の定数かつ、18桁以下である必要があります。

COBOL(コボル)言語のNUMVAL関数を扱う上での注意点

COBOL言語のNUMVAL関数は、引数として文字定数、英数字型項目が使用できますが、コンマ付きであったり、通貨記号が含まれている場合に使用すると、処理実行時にエラーになりますので注意ください。コンマや通貨記号が含まれている場合には、代わりにNUMVAL-C関数を使用するようにしましょう。NUMVAL-C関数では、コンマは無視され、通貨記号なども含めて数値型に変換してくれます。

また、日本語定数や日本語項目の全角文字については、第4次規格準拠の処理系を用いないと指定はできませんので合わせて注意しましょう。

NUMVAL関数を使ったCOBOL(コボル)プログラムの活用法

NUMVAL関数は、先ほどご紹介した通り英数字型の数値データを数字型に変換する関数でした。ここでは活用法として、変換先の数字型についていくつかのパターンを用意し、同じ値でも数字型の定義により結果が変わるという事を確認してみましょう。以下の例のパターンでは、符号なしの数字項目、符号付きの数字項目、符号付きの小数点付き数字項目を用意しました。実際に使用する際にはどのパターンで変換したら期待した値が求められるか考え、活用できるようになりましょう。また、NUMVAL関数は数字型になりますので、戻り値と演算を組み合わせる事もできます。例では、戻り値を10倍した値を画面に表示する処理も記載していますので、合わせて結果を確認して理解を深めましょう。

サンプルプログラム(NUMVAL2):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. NUMVAL_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7. 01 WK-MOJI.
  8. 03 WK-1 PIC X(10) VALUE "-123.45".
  9. 01 WK-SUJI.
  10. 03 WK-R1 PIC 9(18).
  11. 03 WK-R2 PIC S9(18).
  12. 03 WK-R3 PIC S9(16)V99.
  13. 03 WK-R4 PIC S9(16)V99.
  14. PROCEDURE DIVISION.
  15. COMPUTE WK-R1 = FUNCTION NUMVAL(WK-1).
  16. COMPUTE WK-R2 = FUNCTION NUMVAL(WK-1).
  17. COMPUTE WK-R3 = FUNCTION NUMVAL(WK-1).
  18. COMPUTE WK-R4 = FUNCTION NUMVAL(WK-1) * 10.
  19. DISPLAY " " WK-R1.
  20. DISPLAY WK-R2.
  21. DISPLAY WK-R3.
  22. DISPLAY WK-R4.
  23. STOP RUN.

実行結果(NUMVAL2):

辞典・辞書-NUMVAL-実行結果

今回ご紹介したNUMVALのサンプルプログラムは、英数字型の数値データを数字型に変換する関数でした。COBOL言語のプログラムは、文字列編集と演算処理が中心になりますので、今回ご紹介した型変換などはよく使用されます。是非この機会に一度サンプルプログラムを作成して機能の理解を深め、実際のプログラミングに活用いただければと思います。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門