• 締切済み

編集方法を教えてください

PIC S9(08)COMP-3で指定されたデータを上6桁分だけ編集したい。 この場合の編集方法を教えてくると非常に助かる。

みんなの回答

回答No.1

COBOLですね。 「S9(8) COMP-3」は、内部10進(パック)8桁、小数点以下なし、符号付という意味です。 >データを上6桁分だけ どういう意味でしょうか? 上位6桁だけを得たい(=下位2桁を捨てる)なら、100で割って、小数点以下を捨てればいいことになります。 <DATA DIVISISONの記述> 77 A PIC S9(8) COMP-3. 77 B PIC S9(6) COMP-3. <PROCEDURE DIVISIONの記述> COMPUTE B = A / 100 >編集したい 「編集」とは、どういう意味で使っていますか? 上述のように、100で割ったりする操作なら、普通、演算といいますよね? COBOLで「編集」と言えば、出力するための「編集」を指す場合が多いと思いますが、この質問では何ら触れられていません。 符号付きの内部10進の領域を、そのまま出力したら、文字化けしたりすると思います。 出力のための編集ですか? もしそうなら、以下のような編集項目を指定します。 (1)負の数値はなく、前方のゼロは空白にする。0の場合も1の位には「0」を表示する。6バイト出力。 PIC Z(5)9 (2)負の場合は、数値の先頭に「-」を表示する。符号出力のため、1バイト余分に必要。 PIC -(6)9

関連するQ&A