JavaのMathクラス
のceil
・floor
・roundメソッド
でdouble型
などの変数の小数点以下を丸めて整数にする方法を紹介します。
それぞれのメソッドの機能について紹介します。
ceilメソッド
は小数の切り上げ(対象の数値以上の中で最も小さい整数値を返す)を行います。戻り値はdouble型
で返されます。
1Math.ceil(1.5); // 2.0が返ってくる
引数がNaN
、無限大、正または負の0、の場合は、引数と同じ値が返されます。
floorメソッド
は小数の切り捨て(対象の数値以下の中で最も大きい整数値を返す)を行います。戻り値はdouble型
で返されます。
1Math.floor(1.5); // 1.0が返ってくる
引数がNaN
、無限大、正または負の0、の場合は、引数と同じ値が返されます。
roundメソッド
は小数を小数第1位で四捨五入します。戻り値はint
・long型
で返されます。double型
の場合はlong型
で、float型
の場合はint型
の返り値になります。上2つのメソッドとは返り値の型が異なるので注意しましょう。
1Math.round(1.5); // 2が返ってくる
引数がNaN
の場合は0が返されます。
それぞれのメソッドの使用例をサンプルコードで示します。小数第2位以下で四捨五入を行いたい時は、一度桁上げを行ってから四捨五入し、その後桁下げをする必要があります。
1public class RealNumTest {
2 public static void main(String[] args) {
3 double d1 = 0.5;
4 double d2 = 2.5;
5 double d3 = 2.4;
6 double d4 = 1.15;
7
8 // 小数点以下を切り上げする
9 System.out.println(d1 + "の切り上げ:" + Math.ceil(d1));
10 System.out.println(-d1 + "の切り上げ:" + Math.ceil(-d1));
11
12 // 小数以下を切り捨てする
13 System.out.println(d1 + "の切り上げ:" + Math.floor(d1));
14 System.out.println(-d1 + "の切り捨て:" + Math.floor(-d1));
15
16 // 小数第1位で四捨五入する
17 System.out.println(d2 + "の四捨五入:" + Math.round(d2));
18 System.out.println(-d2 + "の四捨五入:" + Math.round(-d2));
19 System.out.println(d3 + "の四捨五入:" + Math.round(d3));
20 System.out.println(-d3 + "の四捨五入:" + Math.round(-d3));
21
22 // 小数第2位で四捨五入する
23 System.out.println(d4 + "の四捨五入(小数第2位):" + ((double) Math.round(d4 * 10)) / 10);
24 }
25}
実行結果が以下になります。
10.5の切り上げ:1.0
2-0.5の切り上げ:-0.0
30.5の切り上げ:0.0
4-0.5の切り捨て:-1.0
52.5の四捨五入:3
6-2.5の四捨五入:-2
72.4の四捨五入:2
8-2.4の四捨五入:-2
91.15の四捨五入(小数第2位):1.2
それぞれ小数点以下を丸めた整数に変換されました。
切り捨て・切り上げの覚え方ですが、ceilは「天井」という意味なので切り上げ、floorは「床」という意味なので切り捨てという風に覚えましょう。
以上で記事を終わりにします。