KCB204RKOINOBORI COBOLERSPAGE 0001
RUN 2026/10/06cobolers.jp
COMP-3(パック10進数)
COMP-3 は、数値を1バイトに2桁ずつ詰めて持つ内部表現(パック10進数)です。最後の半バイトには符号が入ります。
仕組みと使われ方
たとえば PIC S9(5) COMP-3 の +12345 は、16進で 12 34 5C の3バイトになります。符号の半バイトは、IBM の形式では正が C、負が D、符号なしが F です。小数点の位置は記録せず、PIC 句の V の位置で決まります。十進数のまま保持するため、0.1 のような値を2進数の浮動小数点で持つときに出る誤差がありません。金額項目で多用される理由です。
現場での注意点
中身は文字ではなくバイト列なので、ファイル転送のときに文字コード変換をかけると壊れます。バイナリのまま転送するか、項目ごとに変換方法を分ける必要があります。符号の半バイトや桁の中身が不正な値を計算に使うと、S0C7 で異常終了します。
関連用語
| 0001 | PIC句(PICTURE句) |
| 0002 | EBCDIC |
| 0003 | S0C7(データ例外) |
| 0004 | COPY句(コピーブック) |
→ COBOL エディタ.exe の見本「COMP-3」で並びを見る(トップページ)
*** END OF REPORT *** 出力行数 0138 RC=0000
Copyright (C) 2026 Koinobori Co., Ltd.
最終更新 2026/10/06 発行:株式会社Koinobori