Java Tips | 基本ユーティリティ:Math.round()

Web APP Java
スポンサーリンク
スポンサーリンク

Math.round()とは何か

Javaで業務システムを開発していると、小数を整数へ丸めたい場面が頻繁に登場します。

例えば、

  • 平均点の表示
  • レビュー評価の算出
  • 距離の表示
  • 集計結果の出力
  • 統計データの処理
  • グラフ表示用データ作成

などです。

そのような場面で活躍するのが Math.round() です。

Math.round(値)
Java

このメソッドは小数を四捨五入し、最も近い整数へ変換します。

Javaの数学ユーティリティの中でも特に利用頻度が高く、実務で必ず覚えておきたいメソッドのひとつです。

まずは四捨五入を理解しよう

Math.round()を理解するためには、まず四捨五入のルールを理解する必要があります。

元の値結果
10.110
10.410
10.511
10.611
10.911

小数第一位が5以上なら切り上げ、5未満なら切り捨てになります。

Math.round()の基本構文

まずは最もシンプルな例を見てみましょう。

// 小数
double value = 10.6;

// 四捨五入
long result =
        Math.round(value);

// 結果表示
System.out.println(result);
Java

実行結果


11

10.6が四捨五入されて11になりました。

ステップバイステップで理解する

ステップ1:小数値を準備する

// 評価点
double score = 89.7;
Java

小数を含む値です。

ステップ2:Math.round()を実行する

// 四捨五入
long roundedScore =
        Math.round(score);
Java

ステップ3:結果を確認する

// 出力
System.out.println(roundedScore);
Java

実行結果


90

89.7が90へ丸められています。

小数第一位が5未満の場合

// 小数
double value = 10.4;

// 四捨五入
long result =
        Math.round(value);

System.out.println(result);
Java

実行結果


10

10.4は10になります。

5未満だからです。

小数第一位が5の場合

初心者が最も気になるポイントです。

// 小数
double value = 10.5;

// 四捨五入
long result =
        Math.round(value);

System.out.println(result);
Java

実行結果


11

5以上なので切り上げになります。

負の数の場合はどうなるのか

負の値でも利用できます。

// マイナス値
double value = -10.4;

// 四捨五入
long result =
        Math.round(value);

System.out.println(result);
Java

実行結果


-10

さらに、

// マイナス値
double value = -10.6;

// 四捨五入
long result =
        Math.round(value);

System.out.println(result);
Java

実行結果


-11

負の数でも通常の四捨五入ルールに従います。

戻り値の型に注意しよう

初心者がよく見落とすポイントです。

Math.round()は引数によって戻り値が変わります。

float型の場合

// float型
float value = 10.5f;

// intが返る
int result =
        Math.round(value);
Java

double型の場合

// double型
double value = 10.5;

// longが返る
long result =
        Math.round(value);
Java

戻り値の型を間違えるとコンパイルエラーになるため注意が必要です。

実務でよくある利用例① 平均点の表示

// 合計点
int totalScore = 267;

// 人数
int count = 3;

// 平均
double average =
        (double) totalScore
        / count;

// 四捨五入
long displayScore =
        Math.round(
                average
        );

System.out.println(displayScore);
Java

実行結果


89

画面表示やレポート出力で頻繁に利用されます。

実務でよくある利用例② レビュー評価

// 評価平均
double rating = 4.6;

// 表示用
long displayRating =
        Math.round(rating);

System.out.println(displayRating);
Java

実行結果


5

レビューサイトなどで見かける処理です。

実務でよくある利用例③ 距離表示

// 距離
double distance = 15.7;

// 表示用
long displayDistance =
        Math.round(distance);

System.out.println(
        displayDistance + "km"
);
Java

実行結果


16km

地図や物流システムで利用されます。

実務でよくある利用例④ 統計データ処理

// 集計値
double averageAccess =
        1234.56;

// 表示用
long roundedValue =
        Math.round(
                averageAccess
        );
Java

ダッシュボードや分析画面でよく利用されます。

内部でどのように動いているのか

イメージとしては次のような処理です。

// イメージコード
return (long)(value + 0.5);
Java

ただし実際の実装はより複雑で、多くの特殊ケースに対応しています。

初心者は「近い整数に丸める」と覚えておけば十分です。

特に重要:金額計算での注意点

業務開発では非常に重要な知識です。

初心者は次のようなコードを書きがちです。

// 金額
double amount = 10.235;

// 四捨五入
long result =
        Math.round(amount);
Java

しかし結果は、


10

になります。

小数第2位で四捨五入したい場合には使えません。

小数第2位で四捨五入する方法

実務ではこちらの方がよく使われます。

// 金額
double amount = 10.235;

// 小数第2位で四捨五入
double result =
        Math.round(
                amount * 100
        ) / 100.0;

System.out.println(result);
Java

実行結果


10.24

帳票出力や画面表示で頻出するテクニックです。

さらに重要:金融システムでは注意

Math.round()はdouble型を扱います。

しかしdouble型は浮動小数点数です。

そのため誤差が発生します。

// 浮動小数点誤差
System.out.println(
        0.1 + 0.2
);
Java

実行結果


0.30000000000000004

会計システムや決済システムでは問題になります。

そのため金融系システムでは通常、 BigDecimal と RoundingMode を利用します。

Math.round()は簡単な四捨五入向けと考えるのがよいでしょう。

Math.floor()・Math.ceil()との違い

Math.round()


// 四捨五入
Math.round(10.6);
Java

結果


11

Math.floor()


// 切り捨て
Math.floor(10.6);
Java

結果


10.0

Math.ceil()


// 切り上げ
Math.ceil(10.1);
Java

結果


11.0

目的によって使い分けることが重要です。

実務で使えるテンプレート集

基本四捨五入テンプレート


// 四捨五入
long result =
        Math.round(value);
Java

平均値表示テンプレート


// 平均値四捨五入
long average =
        Math.round(
                total / count
        );
Java

小数第2位四捨五入テンプレート


// 小数第2位
double result =
        Math.round(
                value * 100
        ) / 100.0;
Java

レビュー評価テンプレート


// 星評価
int stars =
        (int)Math.round(
                rating
        );
Java

情報セキュリティの観点から見る重要性

Math.round()自体はセキュリティ機能ではありません。

しかし数値の丸め処理は業務ロジックに大きな影響を与えます。

例えば、

  • 料金計算
  • 税額計算
  • ポイント計算
  • 利用回数集計
  • 統計レポート

などです。

誤った丸め処理は金額不整合や集計ミスにつながります。

特に金融系システムでは、Math.round()とBigDecimalの違いを理解して適切に選択することが重要です。

初心者が覚えておくべき重要ポイント

  • 四捨五入を行うメソッドである
  • 最も近い整数へ丸める
  • 5以上は切り上げになる
  • double型ならlongを返す
  • float型ならintを返す
  • レポート表示や集計処理で頻繁に利用される
  • 金融システムではBigDecimalの利用も検討する

まとめ

Math.round()は、小数を四捨五入して最も近い整数へ変換するJava標準メソッドです。

  • 四捨五入を簡単に実装できる
  • 平均点や評価点の表示に便利である
  • 統計データや集計結果の出力で活躍する
  • コードを簡潔に記述できる
  • 小数第2位以降の丸めにも応用できる
  • double型ならlongを返す点に注意する
  • Java開発者が必ず覚えておきたい数学系ユーティリティである

特に業務システムでは、集計結果や分析データを人間が見やすい形で表示する機会が非常に多くあります。Math.round()を正しく理解することで、シンプルで読みやすい数値処理を実装できるようになります。また、Math.floor()やMath.ceil()との違いも理解しておくことで、より柔軟な丸め処理を実現できるようになります。

タイトルとURLをコピーしました