COBOL で桁落ち

今の仕事が NetCOBOL(PowerCOBOL)だって話は以前書いたと思う。

まあ、イベント駆動型の言語なんで、おおむね PowerCOBOL はそれほど違和感を感じることなく楽しく使ってるんだけど、それでも時々 「COBOL だなぁ(^^;;」と思わせられることがある。

そのひとつが変数代入時の桁落ち。

昨日も、21,002回(中途半端な数字なのは気にしないで(笑))回す処理が 1002回しか回らなくて、なんでやねんと思ったら、案の定、21002という回数をセットする変数が、

01 WK-COUNT  PIC 9(4).

になってた(笑)
なので 5桁の数値が入らず、下 4桁だけがセットされたというわけ。

まあ、俺の単純ミスなんだけど、こういうのって普通はコンパイル時になんかエラーになったりワーニングが出たりせんもんかいな?

まあ、簡単に任意の桁の切り出しができるのが「便利」と言うことなのかもしれんが、例えば 5桁の数値から下 4桁の数値を切り出すのなら、ちゃんと明示的に、

01 WK-VAL.
  02 WK-H1   PIC 9(1).
  02 WK-T4   PIC 9(4).

という変数作って、

MOVE   12345   TO  WK-VAL.

して、やればいいやん。よっぽど後でソースも読みやすい。

いや、1〜10桁の間で桁数は変化して、その中の下 4桁が取りたいんや・・・ってことなら、WK-H1 を 6桁にすればええだけや。
どっちにしても COBOLの場合、「実際、何桁になるかわからん」場合もちゃんと固定長で変数宣言せんといかん。ちゅうても、何十桁もあるような数値、そもそも扱わんやろ、COBOLで(笑)

というわけで、桁あふれしてもなんも教えてくれん COBOL には若干苛立ちをおぼえるのお。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: COBOL で桁落ち

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/5423

コメントする

このブログ記事について

このページは、shinodaが2019年9月 5日 12:42に書いたブログ記事です。

ひとつ前のブログ記事は「息子たちの焼きそば、なかなか美味かった」です。

次のブログ記事は「初めて目の前で俳句甲子園を見た」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら