切り上げ、切捨て、四捨五入はJavaでプログラムを組んでいると、色々なところで必要になってくる。
それぞれMathクラスのceilメソッド、floorメソッド、roundメソッドを使用していくが、詳細をご紹介していこう。
目次
Javaの切り上げの求め方
Javaによる切り上げ
切り上げとは,対象の数値より大きいか等しい整数値の中で、対象の数値との距離が最も小さい整数値を求めることだ。反対に難しいかもしれない。
例えば,「10.4」の小数点以下を切り上げると,「11」になる。これを,切り上げを求めるという。
Javaで切り上げを求めるためにはceilメソッドを利用する。
書き方の基本は簡単だ。
切り上げ = Math.ceil(対象となる数値)
Javaでの切り上げるための書き方の詳細を確認していこう。
ceilメソッド
ceilメソッドの引数に指定した値から切り上げを求める。引数に指定できる値はdouble型のみだ。
ceil(double a)
戻り値の型 |
public static double |
内容 |
引数より大きいか等しい数学の整数で,最も小さな(負の最大に最も近い)double値を戻す。 ■下記は特例となる
考慮点:Math.ceil(x)の値は,正確に-Math.floor(-x)の値である。 引数:a - 値 戻り値:aより大きいか等しくて数学の整数で,最も小さな(負の最大に最も近い)浮動小数点値を戻す。 |
Javaで切り上げを求めるサンプルプログラム
それでは実際にサンプルプログラムを確認してみよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public class CeilDouble { public static void main(String[] args) { double positiveValue100 = 10.0;//[1] double positiveValue104 = 10.4;//[2] double positiveValue105 = 10.5;//[3] double negativeValue100 = -10.0;//[4] double negativeValue105 = -10.5;//[5] double negativeValue106 = -10.6;//[6] double positiveInfinity = Double.POSITIVE_INFINITY;//[7] double positiveZero = 0.0;//[8] double negativeZero = - 0.0;//[9] double negativeInfinity = Double.NEGATIVE_INFINITY;//[10] double nanValue = Double.NaN;//[11] double negativeValue005 = - 0.5;//[12] System.out.println("[13] 10.0 : " + Math.ceil(positiveValue100)); System.out.println("[14] 10.4 : " + Math.ceil(positiveValue104)); System.out.println("[15] 10.5 : " + Math.ceil(positiveValue105)); System.out.println("[16] -10.0 : " + Math.ceil(negativeValue100)); System.out.println("[17] -10.5 : " + Math.ceil(negativeValue105)); System.out.println("[18] -10.6 : " + Math.ceil(negativeValue106)); System.out.println("[19] NaN(数値でない値) : " + Math.ceil(nanValue)); System.out.println("[20] 正の無限大 : " + Math.ceil(positiveInfinity)); System.out.println("[21] 負の無限大 : " + Math.ceil(negativeInfinity)); System.out.println("[22] 正のゼロ : " + Math.ceil(positiveZero)); System.out.println("[23] 負のゼロ : " + Math.ceil(negativeZero)); System.out.println("[24] -0.5 : " + Math.ceil(negativeValue005)); } } |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 |
[13] 10.0 : 10.0 [14] 10.4 : 11.0 [15] 10.5 : 11.0 [16] -10.0 : -10.0 [17] -10.5 : -10.0 [18] -10.6 : -10.0 [19] NaN(数値でない値) : NaN [20] 正の無限大 : Infinity [21] 負の無限大 : -Infinity [22] 正のゼロ : 0.0 [23] 負のゼロ : -0.0 [24] -0.5 : -0.0 |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしていこう。
このプログラムは,扱うことのできる様々な値を持つ変数の切り上げを求めいている。
- [1] 10.0を変数:positiveValue100に設定する。
- [2] 10.4を変数:positiveValue104に設定する。
- [3] 10.5を変数:positiveValue105に設定する。
- [4] -10.0を変数:negativeValue100に設定する。
- [5] -10.5を変数:negativeValue105に設定する。
- [6] -10.6を変数:negativeValue106に設定する。
- [7] 正の無限大を変数:positiveInfinityに設定する。
- [8] 正のゼロを変数:positiveZeroに設定する。
- [9] 負のゼロを変数:negativeZeroに設定する。
- [10] 正の無限大を変数:negativeInfinityに設定する。
- [11] NaNを変数:nanValueに設定する。
- [12] -0.5を変数:negativeValue005に設定する。
- [13] positiveValue100の切り上げを表示する。
- [14] positiveValue104の切り上げを表示する。
- [15] positiveValue105の切り上げを表示する。
- [16] negativeValue100の切り上げを表示する。
- [17] negativeValue105の切り上げを表示する。
- [18] negativeValue106の切り上げを表示する。
- [19] positiveInfinityの切り上げを表示する。
- [20] positiveZeroの切り上げを表示する。
- [21] negativeZeroの切り上げを表示する。
- [22] negativeInfinityの切り上げを表示する。
- [23] nanValueの切り上げを表示する。
- [24] negativeValue005の切り上げを表示する。
Javaの切捨ての求め方
Javaによる切捨て
切捨てを求めるとは,対象の数値より小さいか等しい整数値の中で,対象の数値との距離が最も小さい整数値を求めることだ。例えば,「10.02」を切捨てると,「10.00」になる。これを,切捨てを求めるという。
Javaで切捨てを求めるためにはfloorメソッドを利用する。
書き方の基本は簡単だ。
切捨て = Math.floor(対象となる数値)
Javaでの切捨てを求めるための書き方の詳細を確認していこう。
floorメソッド
floorメソッドの引数に指定した値から切捨てを求める。引数に指定できる値はdouble型のみだ。
floor(double a)
戻り値の型 |
public static double |
内容 |
引数より小さいか等しい数学の整数で,最も大きな(正の最大に最も近い)double値を戻す。 ■下記は特例となる
引数:a - 値 戻り値:aより小さいか等しい数学の整数で,最も大きな(正の最大に最も近い)浮動小数点値を戻す。 |
Javaで切捨てを求めるサンプルプログラム
それでは実際にサンプルプログラムを確認してみよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class FloorDouble { public static void main(String[] args) { double positiveValue100 = 10.0;//[1] double positiveValue104 = 10.4;//[2] double positiveValue105 = 10.5;//[3] double negativeValue100 = -10.0;//[4] double negativeValue105 = -10.5;//[5] double negativeValue106 = -10.6;//[6] double positiveInfinity = Double.POSITIVE_INFINITY;//[7] double positiveZero = 0.0;//[8] double negativeZero = - 0.0;//[9] double negativeInfinity = Double.NEGATIVE_INFINITY;//[10] double nanValue = Double.NaN;//[11] System.out.println("[12] 10.0 : " + Math.floor(positiveValue100)); System.out.println("[13] 10.4 : " + Math.floor(positiveValue104)); System.out.println("[14] 10.5 : " + Math.floor(positiveValue105)); System.out.println("[15] -10.0 : " + Math.floor(negativeValue100)); System.out.println("[16] -10.5 : " + Math.floor(negativeValue105)); System.out.println("[17] -10.6 : " + Math.floor(negativeValue106)); System.out.println("[18] NaN(数値でない値) : " + Math.floor(nanValue)); System.out.println("[19] 正の無限大 : " + Math.floor(positiveInfinity)); System.out.println("[20] 負の無限大 : " + Math.floor(negativeInfinity)); System.out.println("[21] 正のゼロ : " + Math.floor(positiveZero)); System.out.println("[22] 負のゼロ : " + Math.floor(negativeZero)); } } |
実行結果
1 2 3 4 5 6 7 8 9 10 11 |
[12] 10.0 : 10.0 [13] 10.4 : 10.0 [14] 10.5 : 10.0 [15] -10.0 : -10.0 [16] -10.5 : -11.0 [17] -10.6 : -11.0 [18] NaN(数値でない値) : NaN [19] 正の無限大 : Infinity [20] 負の無限大 : -Infinity [21] 正のゼロ : 0.0 [22] 負のゼロ : -0.0 |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしていこう。このプログラムは,扱うことのできる様々な値を持つ変数の切捨てを求めいている。
- [1] 10.0を変数:positiveValue100に設定する。
- [2] 10.4を変数:positiveValue104に設定する。
- [3] 10.5を変数:positiveValue105に設定する。
- [4] -10.0を変数:negativeValue100に設定する。
- [5] -10.5を変数:negativeValue105に設定する。
- [6] -10.6を変数:negativeValue106に設定する。
- [7] 正の無限大を変数:positiveInfinityに設定する。
- [8] 正のゼロを変数:positiveZeroに設定する。
- [9] 負のゼロを変数:negativeZeroに設定する。
- [10] 正の無限大を変数:negativeInfinityに設定する。
- [11] NaNを変数:nanValueに設定する。
- [12] positiveValue100の切捨てを表示する。
- [13] positiveValue105の切捨てを表示する。
- [14] positiveValue106の切捨てを表示する。
- [15] negativeValue100の切捨てを表示する。
- [16] negativeValue104の切捨てを表示する。
- [17] negativeValue105の切り上げを表示する。
- [18] positiveInfinityの切り上げを表示する。
- [19] positiveZeroの切り上げを表示する。
- [20] negativeZeroの切り上げを表示する。
- [21] negativeInfinityの切り上げを表示する。
- [22] nanValueの切り上げを表示する。
Javaの四捨五入の求め方
Javaによる四捨五入
四捨五入を求めるとは,対象の数値との距離が最も小さい整数値を求めることだ。対象の数値が二つの整数値の中間にあるときは,二つの内の大きいほうの整数値になる。例えば,「10.4」を四捨五入すると,「10.0」になる。また,「10.5」を四捨五入すると,「11.0」になる。これを,四捨五入を求めるという。
Javaで四捨五入を求めるためにはroundメソッドを利用する。
書き方の基本は簡単だ。
四捨五入 = Math.round(対象となる数値)
Javaでの四捨五入を求めるための書き方の詳細を確認していこう。
メソッドの型による違い
roundメソッドの引数に指定した値から四捨五入を求める。引数に指定できる値はdouble型・float型と種類がある。
double型
round(double a)
戻り値の型 |
public static double |
内容 |
正の無限大に向かって四捨五入された引数に最も近いlong値を戻す。 ■下記は特例となる
引数:a - long値に四捨五入すべき浮動小数点。 戻り値:引数を四捨五入したlong値に最も近い値。 |
float型
round(float a)
戻り値の型 |
public static float |
内容 |
正の無限大に向かって四捨五入された引数に最も近いint値を戻す。
■下記は特例となる
引数:a - int値に四捨五入すべき浮動小数点。 戻り値:引数を四捨五入したint値に最も近い値。 |
Javaで四捨五入を求めるサンプルプログラム
それでは実際にサンプルプログラムを確認してみよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class RoundDouble { public static void main(String[] args) { double positiveValue100 = 10.0;//[1] double positiveValue104 = 10.4;//[2] double positiveValue105 = 10.5;//[3] double negativeValue100 = -10.0;//[4] double negativeValue105 = -10.5;//[5] double negativeValue106 = -10.6;//[6] double positiveInfinity = Double.POSITIVE_INFINITY;//[7] double longMaximumValue = Long.MAX_VALUE;//[8] double longMinimumValue = Long.MIN_VALUE;//[9] double negativeInfinity = Double.NEGATIVE_INFINITY;//[10] double nanValue = Double.NaN;//[11] System.out.println("[12] 10.0 : " + Math.round(positiveValue100)); System.out.println("[13] 10.4 : " + Math.round(positiveValue104)); System.out.println("[14] 10.5 : " + Math.round(positiveValue105)); System.out.println("[15] -10.0 : " + Math.round(negativeValue100)); System.out.println("[16] -10.5 : " + Math.round(negativeValue105)); System.out.println("[17] -10.6 : " + Math.round(negativeValue106)); System.out.println("[18] NaN(数値でない値) : " + Math.round(nanValue)); System.out.println("[19] 正の無限大 : " + Math.round(positiveInfinity)); System.out.println("[20] Long.MAX_VALUE : " + Math.round(longMaximumValue)); System.out.println("[21] Long.MIN_VALUE : " + Math.round(longMinimumValue)); System.out.println("[22] 負の無限大 : " + Math.round(negativeInfinity)); } } |
実行結果
1 2 3 4 5 6 7 8 9 10 11 |
[12] 10.0 : 10 [13] 10.4 : 10 [14] 10.5 : 11 [15] -10.0 : -10 [16] -10.5 : -10 [17] -10.6 : -11 [18] NaN(数値でない値) : 0 [19] 正の無限大 : 9223372036854775807 [21] Long.MAX_VALUE : 9223372036854775807 [22] Long.MIN_VALUE : -9223372036854775808 [20] 負の無限大 : -9223372036854775808 |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
このプログラムは,扱うことのできる様々な値を持つ変数の四捨五入を求めいている。
- [1] 10.0を変数:positiveValue100に設定する。
- [2] 10.4を変数:positiveValue104に設定する。
- [3] 10.5を変数:positiveValue105に設定する。
- [4] -10.0を変数:negativeValue100に設定する。
- [5] -10.5を変数:negativeValue105に設定する。
- [6] -10.6を変数:negativeValue106に設定する。
- [7] 正の無限大を変数:positiveInfinityに設定する。
- [8] 正のゼロを変数:positiveZeroに設定する。
- [9] 負のゼロを変数:negativeZeroに設定する。
- [10] 正の無限大を変数:negativeInfinityに設定する。
- [11] NaNを変数:nanValueに設定する。
- [12] positiveValue100の四捨五入を表示する。
- [13] positiveValue104の四捨五入を表示する。
- [14] positiveValue105の四捨五入を表示する。
- [15] negativeValue100の四捨五入を表示する。
- [16] negativeValue105の四捨五入を表示する。
- [17] negativeValue106の四捨五入を表示する。
- [18] positiveInfinityの四捨五入を表示する。
- [19] positiveZeroの四捨五入を表示する。
- [20] negativeZeroの四捨五入を表示する。
- [21] negativeInfinityの四捨五入を表示する。
- [22] nanValueの四捨五入を表示する。
まとめ
切り上げのceilメソッド、切捨てのfloorメソッド、四捨五入のroundメソッドについてご紹介してきた。
一番使うのはroundだろうか。floorもよく使う。いちいち調べるのも手間なので、覚えてしまおう。
実行結果の[16] -10.5 の部分ですが、数カ所で間違っていませんか?
いつもご愛読ありがとうございます。
ご指摘の点ですが確認ができず、詳細いただけますと幸いです。