カテゴリ: COBOL 更新日: 2025/11/05

COBOLのROUNDED句を使った丸め処理を完全マスター!初心者でもわかる数値演算の基本

ROUNDED句を使った丸め処理の方法
ROUNDED句を使った丸め処理の方法

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLで計算するときに小数点以下を四捨五入したいんですが、どうすればいいんですか?」

先生

「それなら、ROUNDED(ラウンデッド)句を使うと簡単にできますよ。」

生徒

「ROUNDED句?聞いたことがないです…。どうやって使うんですか?」

先生

「では、今日はCOBOLのROUNDED句を使った丸め処理について、わかりやすく説明していきましょう!」

1. ROUNDED句とは?

1. ROUNDED句とは?
1. ROUNDED句とは?

COBOLのROUNDED句(ラウンデッド句)は、計算の結果を四捨五入して代入したいときに使う便利な機能です。プログラミング初心者の方にもわかりやすく言うと、「小数点以下の数字をきれいに丸める」ための命令文の一部です。

例えば、1.25を四捨五入して1.3にしたり、2.74を2.7にしたりするような処理を自動で行ってくれます。COBOLでは、ADD(足し算)やSUBTRACT(引き算)、MULTIPLY(掛け算)、DIVIDE(割り算)などの算術文(さんじゅつぶん)にこのROUNDEDをつけるだけで使えます。

2. 基本の書き方

2. 基本の書き方
2. 基本の書き方

ROUNDED句は、計算結果を代入する変数の後に書きます。形は次のようになります。


ADD A TO B ROUNDED.
MULTIPLY X BY Y GIVING Z ROUNDED.
DIVIDE A BY B GIVING C ROUNDED.

つまり、「ROUNDEDは結果を受け取る変数の後に書く」のがポイントです。これをつけると、COBOLが自動的に小数点以下を四捨五入して処理してくれます。

3. 具体的なサンプルコード

3. 具体的なサンプルコード
3. 具体的なサンプルコード

では、実際にどのように使うのか、簡単なCOBOLプログラムで見てみましょう。


IDENTIFICATION DIVISION.
PROGRAM-ID. ROUND-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A         PIC 9V99 VALUE 2.75.
01 B         PIC 9V99 VALUE 3.25.
01 RESULT    PIC 9V9 VALUE 0.

PROCEDURE DIVISION.
    ADD A TO B GIVING RESULT ROUNDED.
    DISPLAY "丸めあり:" RESULT.
    
    ADD A TO B GIVING RESULT.
    DISPLAY "丸めなし:" RESULT.
    
    STOP RUN.

このプログラムを実行すると、次のような結果が出ます。


    丸めあり:6.0
    丸めなし:5.9

このように、ROUNDEDをつけるだけで四捨五入されるのが分かります。

4. ROUNDED句が使える演算文

4. ROUNDED句が使える演算文
4. ROUNDED句が使える演算文

ROUNDED句は、すべての算術演算文(数値を扱う命令)で使えます。具体的には次の4種類です。

  • ADD文(足し算)
  • SUBTRACT文(引き算)
  • MULTIPLY文(掛け算)
  • DIVIDE文(割り算)

これらの命令にROUNDEDをつけると、結果が自動的に四捨五入されます。特に金額や平均値などを扱う業務システムでは、誤差が出ないようにROUNDED句を使うことが多いです。

5. ROUNDED句を使うときの注意点

5. ROUNDED句を使うときの注意点
5. ROUNDED句を使うときの注意点

とても便利なROUNDED句ですが、使うときにはいくつか注意するポイントがあります。

  1. 結果を受け取る変数の定義 変数の桁数(けたすう)を正しく定義しておかないと、丸めた結果が切り捨てられたりエラーになったりします。例えば、小数第1位まで表示したい場合は、PIC 9V9のように書きましょう。
  2. ROUNDEDは「結果の変数」につける ROUNDEDは必ず結果を受け取る変数の後につけます。間違えて計算する変数の後に書いても動きません。
  3. ROUNDEDは四捨五入だけ ROUNDED句は「四捨五入」専用です。「切り捨て」や「切り上げ」は別の方法(桁数制御など)を使う必要があります。

6. 応用例:割り算でのROUNDED

6. 応用例:割り算でのROUNDED
6. 応用例:割り算でのROUNDED

次は、割り算の計算でROUNDEDを使った例を見てみましょう。たとえば、合計金額を人数で割るような場合です。


IDENTIFICATION DIVISION.
PROGRAM-ID. ROUND-DIVIDE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TOTAL-AMOUNT PIC 9(4)V99 VALUE 1000.00.
01 PEOPLE       PIC 9(2) VALUE 3.
01 AVERAGE      PIC 9(4)V9 VALUE 0.

PROCEDURE DIVISION.
    DIVIDE TOTAL-AMOUNT BY PEOPLE GIVING AVERAGE ROUNDED.
    DISPLAY "1人あたり:" AVERAGE "円".
    STOP RUN.

この場合、1000 ÷ 3 = 333.333…となりますが、ROUNDEDをつけているので結果は333.3となります。これならお金の計算でも安心です。

7. 実務での活用ポイント

7. 実務での活用ポイント
7. 実務での活用ポイント

実際のCOBOL業務プログラムでは、売上計算、給与計算、金利計算などで小数点を扱うことが多くあります。その際、ROUNDED句を使うことで、四捨五入を自動的に行い、計算誤差(けいさんごさ)を防ぐことができます。

また、ROUNDEDを使うと、プログラマーが「自分で四捨五入の処理を書く」必要がなくなるため、プログラムがシンプルで読みやすくなります。特に金融系システムなどでは、このROUNDED句が欠かせません。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法