【Java】小数点の切り上げ・切り捨て・四捨五入をするメソッド

【Java】小数点の切り上げ・切り捨て・四捨五入をするメソッドプログラミングの知識
プログラミングの知識

double型などの変数で小数点以下を丸めて整数にする時は、Mathクラスceilfloorroundメソッドを使います。それぞれのメソッドの処理についてまとめていきます。

スポンサーリンク

それぞれのメソッドの処理

それぞれのメソッドの機能について紹介します。

ceilメソッド:切り上げ

ceilメソッドは小数の切り上げ(対象の数値以上の中で最も小さい整数値を返す)を行います。戻り値はdouble型で返されます。

/* ceilメソッドの書式例 */
Math.ceil(1.5);// 2.0が返ってくる

引数がNaN、無限大、正または負の0、の場合は、引数と同じ値が返されます。

floorメソッド:切り捨て

floorメソッドは小数の切り捨て(対象の数値以下の中で最も大きい整数値を返す)を行います。戻り値はdouble型で返されます。

/* floorメソッドの書式例 */
Math.floor(1.5);// 1.0が返ってくる

引数がNaN、無限大、正または負の0、の場合は、引数と同じ値が返されます。

roundメソッド:四捨五入

roundメソッドは小数を小数第1位で四捨五入します。戻り値はintlong型で返されます。double型の場合はlong型で、float型の場合はint型の返り値になります。上2つのメソッドとは返り値の型が異なるので注意しましょう。

/* roundメソッドの書式例 */
Math.round(1.5);// 2が返ってくる

引数がNaNの場合は0が返されます。

メソッドの使用例

それぞれのメソッドの使用例をサンプルコードで示します。小数第2位以下で四捨五入を行いたい時は、一度桁上げを行ってから四捨五入し、その後桁下げをする必要があります。

  • サンプルコード
public class RealNumTest {
  public static void main(String[] args) {
    double d1 = 0.5;
    double d2 = 2.5;
    double d3 = 2.4;
    double d4 = 1.15;

    // 小数点以下を切り上げする
    System.out.println(d1 + "の切り上げ:" + Math.ceil(d1));
    System.out.println(-d1 + "の切り上げ:" + Math.ceil(-d1));

    // 小数以下を切り捨てする
    System.out.println(d1 + "の切り上げ:" + Math.floor(d1));
    System.out.println(-d1 + "の切り捨て:" + Math.floor(-d1));

    // 小数第1位で四捨五入する
    System.out.println(d2 + "の四捨五入:" + Math.round(d2));
    System.out.println(-d2 + "の四捨五入:" + Math.round(-d2));
    System.out.println(d3 + "の四捨五入:" + Math.round(d3));
    System.out.println(-d3 + "の四捨五入:" + Math.round(-d3));

    // 小数第2位で四捨五入する
    System.out.println(d4 + "の四捨五入(小数第2位):" + ((double) Math.round(d4 * 10)) / 10);
  }
}
  • 出力結果
0.5の切り上げ:1.0
-0.5の切り上げ:-0.0
0.5の切り上げ:0.0
-0.5の切り捨て:-1.0
2.5の四捨五入:3
-2.5の四捨五入:-2
2.4の四捨五入:2
-2.4の四捨五入:-2
1.15の四捨五入(小数第2位):1.2

切り捨て・切り上げの覚え方ですが、ceilは「天井」という意味なので切り上げ、floorは「床」という意味なので切り捨てという風に覚えましょう。

以上で記事を終わりにします。

参考文献

スポンサーリンク
Dim雑記