COBOLの四捨五入の方法を解説する

四捨五入

今回は、COBOLで四捨五入する方法について解説します。

四捨五入

四捨五入

COBOLでは四捨五入するROUNDED関数が組み込まれている。そのため簡単に四捨五入することが可能である。
では簡単な例を

01 N PIC 9V9.
01 RES PIC 9.
~~~~~~~~~~~~~~~~~~~~
COMPUTE RES ROUNDED = N.

このように、四捨五入したい変数の後ろに「ROUNDED」を置く。

RES変数が少数点以下のない整数だけのデータ型であった場合、少数第一位の値を見て四捨五入を行う。

例えば、N変数が「5.5」の場合、RES変数には6が代入される。
もちろん、N変数が「5.4」の場合、RES変数には5が代入される。

ではRES変数が少数第一位まである実数のデータ型であった場合、少数第二位の値を見て四捨五入を行う。

01 N PIC 9V99.
01 RES PIC 9V9.
~~~~~~~~~~~~~~~~~~~~
COMPUTE RES ROUNDED = N.

N変数が「5.55」の場合、RES変数には「5.6」が代入される。

実際の例

では実際に、見出し部から四捨五入をするためのコードを書いていきます。

今回想定するのは、入力される値が「9.96425」で、小数第一位、第二位、第三位、第四位、第五位でそれぞれ四捨五入してみる。

IDENTIFICATION DIVISION.
PROGRAM-ID. ROUND.

DATA DIVISION.
    WORKING-STORAGE SECTION.
    
        01 INT PIC 99V99999.
        
        01 RES1 PIC 99.
        01 RES2 PIC 99.9.
        01 RES3 PIC 99.99.
        01 RES4 PIC 99.999.
        01 RES5 PIC 99.9999.
   
PROCEDURE DIVISION.
    MAIN SECTION.
    
        MOVE 9.96555 TO INT.    *> 入力される値 9.96555
        
        COMPUTE RES1 ROUNDED = INT.    *> 小数第一位で四捨五入
        
        COMPUTE RES2 ROUNDED = INT.    *> 小数第二位で四捨五入
        
        COMPUTE RES3 ROUNDED = INT.    *> 小数第三位で四捨五入
        
        COMPUTE RES4 ROUNDED = INT.    *> 小数第四位で四捨五入
        
        COMPUTE RES5 ROUNDED = INT.    *> 小数第五位で四捨五入
    
        DISPLAY RES1.   *> 10
        DISPLAY RES2.   *> 10.0
        DISPLAY RES3.   *> 09.97
        DISPLAY RES4.   *> 09.966
        DISPLAY RES5.   *> 09.9656
        
    STOP RUN.

こんな感じ。

四捨五入を計算にて使用する

四捨五入は計算でも使用することができる。今回は足し算の場合を説明する。

足し算で使用する際には、下記のように「ROUNDED」を指定する。

ADD 0.99 TO B ROUNDED.

この時「0.99 + B」を計算して、計算結果をBに代入する。その計算結果を四捨五入するということになる。

また、下記のように、「0.99 + A = A」と「0.99 + B = B」の両方の計算を行い、Bの方のみに四捨五入を行うという方法もできる。

ADD 0.99 TO A B ROUNDED. 

今回は上記の方法で、四捨五入をする方としない方で比較していく。
下記が計算結果です。

DATA DIVISION.
    WORKING-STORAGE SECTION.
    
        01 A PIC 99V9 VALUES 10.
        01 B PIC 99V9 VALUES 10.

PROCEDURE DIVISION.
    MAIN SECTION.
    
        ADD 0.99 TO A B ROUNDED.  *> 0.99 + A = A, 0.99 + B = B
        
        DISPLAY A.   *> 10.9
        DISPLAY B.   *> 11.0

以上が、計算結果を四捨五入する方法です。

加算以外の四捨五入の指定方法

加算以外の四捨五入の方法は下記の通りとなっています。

種類形式
足し算(加算)ADD A TO B ROUNDED
引き算(減算)SUBTRACT A FROM B ROUNDED
割り算(除算)DIVIDE A INTO B ROUNDED
掛け算(乗算)MULTIPLY A BY B ROUNDED
算術式COMPUTE A ROUNDED = A + B
四捨五入方法一覧

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA