COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

23.3.1 2進項目のけた落とし-DigitsTrunc

-DigitsTruncを指定すると,COBOL原始プログラム中の転記文で受け取り側作用対象が2進項目の場合,送り出し側作用対象の有効けた(PICTURE句で指定した10進けた数)が受け取り側作用対象のけた数より大きいとき,上位けたの切り捨てを行う。

-DigitsTruncを指定しないと,COBOL原始プログラム中の転記文で受け取り側作用対象が2進項目の場合,送り出し側作用対象の値の有効けたが受け取り側作用対象の領域(2,4または8バイト)に入らないとき,そのバイト数に入りきらない部分を切り捨てる。

(備考)
COBOLは10進法を基調にしているので,厳密には-DigitsTruncが規格の仕様である。

(例)
 
       77 A PIC S9(5) COMP VALUE 12345.
       77 B PIC S9(4) COMP.
            :
           MOVE A TO B
 
Aの2進項目には2バイトの領域が割り当てられるので,-32768〜+32767の範囲の数値を格納できる。しかし,-DigitsTrunc指定時には,けた落としが行われ,転記後はBの項目の値は2345となる。