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 で異常終了します。

0001PIC句(PICTURE句)
0002EBCDIC
0003S0C7(データ例外)
0004COPY句(コピーブック)

→ COBOL エディタ.exe の見本「COMP-3」で並びを見る(トップページ)

→ 用語集の一覧へ戻る

→ 技術者の方のよくある質問

→ 技術者登録のご案内

*** END OF REPORT ***  出力行数 0138  RC=0000

Copyright (C) 2026 Koinobori Co., Ltd.

最終更新 2026/10/06 発行:株式会社Koinobori