COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
生徒
「COBOLで数字を扱うときはどうやって書くんですか?」
先生
「COBOLでは、数値データを表すのに『PIC 9』という書き方を使いますよ。」
生徒
「PIC 9って何ですか?難しそう…」
先生
「心配いりません。今回は、初心者の方にもわかりやすく『PIC 9』の使い方と注意点を丁寧に解説していきますね!」
1. COBOLの数値データ型「PIC 9」とは?
COBOL(コボル)では、数値データを表すときにPIC(ピクチャ)句を使います。PIC句は、「この変数はどんなデータを入れるか」を定義するものです。
その中でもPIC 9
は「数字(0から9まで)の1桁」を意味します。たとえば、PIC 999
と書けば「最大で3桁の数字が入る変数」になります。
簡単に言えば、「9」は数字を入れるための『箱』のようなもので、いくつ「9」を並べるかで、入れられる数字の桁数が決まります。
2. PIC 9を使った基本的な変数の定義
実際にCOBOLで数値データ型を定義するには、DATA DIVISION
の中で、次のように書きます。
01 AGE PIC 99.
01 PRICE PIC 9999.
01 QUANTITY PIC 9(5).
それぞれの意味は次のとおりです:
AGE PIC 99
→ 2桁までの数字(例:23など)PRICE PIC 9999
→ 4桁までの数字(例:1234など)QUANTITY PIC 9(5)
→ 5桁までの数字(例:12345など)。9(5)のようにまとめて書けます。
3. 実行例を見てみよう
次に、数値変数を使ってDISPLAY
文で画面に出力してみましょう。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLENUMBERS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 AGE PIC 99 VALUE 25.
01 PRICE PIC 9999 VALUE 1500.
01 QUANTITY PIC 9(5) VALUE 12345.
PROCEDURE DIVISION.
DISPLAY "年齢: " AGE
DISPLAY "価格: " PRICE
DISPLAY "数量: " QUANTITY
STOP RUN.
このプログラムを実行すると、以下のような出力が表示されます。
年齢: 25
価格: 1500
数量: 12345
4. PIC 9の注意点
COBOLでPIC 9
を使うときには、いくつかの注意点があります。
① 数字以外は入れられない
PIC 9
は数字専用です。もし、文字や記号を入れようとすると、エラーになります。
② 桁数が足りないと切り捨てられる
定義した桁数よりも大きな数字を入れようとすると、切り捨てやエラーになる可能性があります。たとえば、PIC 99
に「123」を入れようとすると、うまく入りません。
③ ゼロで埋められることがある
数値の先頭に0がつくこともあります。たとえばPIC 999
で「5」を表示すると「005」になることがあります(これは使用する環境や設定によります)。
5. 0(ゼロ)や負の数はどう扱う?
PIC 9
は整数(プラスの数)を扱う前提です。もし0
を扱いたい場合は、もちろん大丈夫です。ただし、マイナス(負の数)を扱いたいときは、S9
という書き方を使います。
たとえば、次のように書きます:
01 BALANCE PIC S999 VALUE -200.
S
は「符号付き(Signed)」という意味で、マイナスの数値も扱えるようになります。
6. 実務での使いどころ
PIC 9
は、銀行の口座番号、金額、年齢、数量、社員番号など、整数で表せる情報を管理するのに最適です。
たとえば、社員番号が5桁固定の場合:
01 EMPLOYEE-ID PIC 9(5).
金額が999999円までなら:
01 SALARY PIC 9(6).
このように、PIC 9
は多くの業務処理でよく使われる重要な要素です。