【Java】3分あれば完全理解!ceilを使って小数点以下の切り上げを行う!
小数点以下の切り上げを行う場合にはMathクラスのceilメソッドを使用します。
Mathクラスのceilメソッドは、引数より大きいか等しい整数を戻すメソッドとなります。
切り上げを行うということは、指定した数値より大きいか等しい整数値の中で、数直線状で表した場合、対象の数値との距離が最も近い整数値を求めることになります。
今回はMathクラスのceilをメソッドを使って以下の場合に小数点以下の切り上げを行います。
・ 正の数の小数点以下の切り上げを行う場合
・ 負の数の小数点以下の切り上げを行う場合
・ 無限大の小数点以下の切り上げを行う場合
・ NaN(非数)の小数点以下の切り上げを行う場合
目次
ceilメソッドとは
Mathクラスのceilメソッドは、引数より大きいか等しい数学の整数を戻すメソッドとなります。
ceilメソッドの書き方
ceilメソッドの構文は下記となります。
1 |
Math.ceil(数値); |
ceilの()に数値を指定することで指定した数値より大きい数学の整数をDouble型で返します。
しかし、引数が整数、無限大、NaNの場合はパラメータをそのまま戻し、「0」より小さく「-1」より大きい場合は、「ゼロ」ではなく「負のゼロ」を戻します。
小数点以下の切り上げを行うサンプルコード
小数点以下の切り上げを行うサンプルコードを紹介します。
正の数を切り上げる場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 小数点以下の切り上げを行う public class Main { public static void main(String[] args) throws Exception { double[] values1 = {3.3, 3.8}; for (double val : values1) { // 小数点以下の切り捨てをする System.out.println( val + "の端数切り捨て結果⇒ " + Math.ceil(val)); // int型にキャストする System.out.println( val + "をint型にキャスト⇒" + (int) val); } } } |
出力結果
3.3の端数切り捨て結果⇒ 4.0
3.3をint型にキャスト⇒3
3.8の端数切り捨て結果⇒ 4.0
3.8をint型にキャスト⇒3
ceilメソッドで小数点以下を切り上げて表示しています。
負の数を切り上げる場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 小数点以下の切り上げを行う public class Main { public static void main(String[] args) throws Exception { double[] values2 = {-3.3, -3.8}; for (double val : values2) { // 小数点以下の切り捨てをする System.out.println( val + "の端数切り捨て結果⇒ " + Math.ceil(val)); // int型にキャストする System.out.println( val + "をint型にキャスト⇒" + (int) val); } } } |
出力結果
-3.3の端数切り捨て結果⇒ -3.0
-3.3をint型にキャスト⇒-3
-3.8の端数切り捨て結果⇒ -3.0
-3.8をint型にキャスト⇒-3
負の整数の場合は数字が小さいほど大きくなる為、切り上げの場合は-4ではなく−3となります。
-1より大きく0より小さい数値を切り上げる場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// 小数点以下の切り上げを行う public class Main { public static void main(String[] args) throws Exception { double[] values3 = {-0.7, -0.4}; for (double val : values3) { // 小数点以下の切り捨てをする System.out.println( val + "の端数切り捨て結果⇒ " + Math.ceil(val)); // int型にキャストする System.out.println( val + "をint型にキャスト⇒" + (int) val); } } } |
出力結果
-0.7の端数切り捨て結果⇒ -0.0
-0.7をint型にキャスト⇒0
-0.4の端数切り捨て結果⇒ -0.0
-0.4をint型にキャスト⇒0
-1より大きく0より小さい場合は負のゼロを返します。
無限大を切り上げる場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// 小数点以下の切り上げを行う public class Main { public static void main(String[] args) throws Exception { double[] values4 = {Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY}; for (double val : values4) { // 小数点以下の切り捨てをする System.out.println( val + "の端数切り捨て結果⇒ " + Math.ceil(val)); // int型にキャストする System.out.println( val + "をint型にキャスト⇒" + (int) val); } } } |
出力結果
Infinityの端数切り捨て結果⇒ Infinity
Infinityをint型にキャスト⇒2147483647
-Infinityの端数切り捨て結果⇒ -Infinity
-Infinityをint型にキャスト⇒-2147483648
無限大の場合はそのまま無限大(Infinity)を返します。
NaN(非数)を切り上げる場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 小数点以下の切り捨てを行う public class Main { public static void main(String[] args) throws Exception { // 小数点以下の切り捨てをする System.out.println( "NaNの端数切り捨て結果⇒ " + Math.ceil(Double.NaN)); // int型にキャストする System.out.println( "NaNをint型にキャスト⇒" + (int) Double.NaN); } } |
出力結果
NaNの端数切り捨て結果⇒ NaN
NaNをint型にキャスト⇒0
NaNの場合はそのままNaNを返します。
今回のポイント
ceilで小数点以下の切り上げる
小数点以下の切り上げを行うにはMathクラスのceilメソッドを使用する
⚫︎ Mathクラスのceilメソッドで少数点以下の値を切り上げる
(指定した値を超える範囲で最小(負の無限大に近い)の整数値を返す)
⚫︎ ceilメソッドのパラメータが正の数である場合は「整数の値 + 1」となりint型のキャストした値とは異なる値になる
(例えば、ceil(3.5)の場合は4を返す)
⚫︎ ceilメソッドのパラメータが負の数である場合は「– 整数の値」となり、int型のキャストした値と同じに値になる
(例えば、ceil(-3.7)の場合は-3を返す)
⚫︎ ceilメソッドのパラメータが整数、無限大、NaNの場合は整数、無限大、NaNのパラメータをそのまま返す
⚫︎ ceilメソッドのパラメータが「0」より小さく「-1」より大きい場合、負のゼロ」を返す
関連記事
小数点以下の切り捨てるfloorメソッドについてはこちらをご参考ください。
小数点以下の四捨五入を計算するroundメソッドについてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。