【Java】roundを使って小数点以下の四捨五入を計算する!
小数点以下の四捨五入を行う場合にはMathクラスのroundメソッドを使用します。
Mathクラスのroundメソッドは、小数点以下の四捨五入を行うメソッドとなります。
四捨五入とは、対象の数値との距離が最も小さい整数値を求め、対象の数値が二つの整数値の中間にあるときは,二つの内の大きいほうの整数値になります。
その為、0〜4の場合は切り捨てて、5〜9の場合は切り上げて計算を行います。
今回はMathクラスのroundをメソッドを使って以下の内容について解説します。
・ 正の数を四捨五入する場合
・ 負の数を四捨五入する場合
・ 無限大を四捨五入する場合
・ 変数の最大値、最小値を四捨五入する場合
・ NaN(非数)を四捨五入する場合
目次
roundメソッドとは
Mathクラスのroundメソッドは、引数より小さいか等しい数学の整数を戻すメソッドとなります。
roundメソッドの書き方
roundメソッドの構文は下記となります。
1 |
Math.round(数値); |
パラメータ
⚫︎ 数値:
四捨五入したい数値を指定
roundの()に数値を指定することで指定した数値を四捨五入して返します。
しかし、引数が負の無限大、または変数の最小値以下の値の場合は「変数の最小値」を四捨五入して戻し、正の無限大、または変数の最大値の場合は「変数の最大値」を四捨五入して戻します。
また、NaNの場合は「0」を戻します。
小数点以下の四捨五入を計算するサンプルコード
小数点以下の四捨五入を計算するサンプルコードを紹介します。
四捨五入する値が正の数である場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 小数点以下の四捨五入を計算する public class Main { public static void main(String[] args) throws Exception { double[] values = {3.4, 3.5, 0.5, 1.0, 3.333}; for (double val1 : values) { //小数点以下の四捨五入をする System.out.println( val1 + "の四捨五入結果⇒ " + Math.round(val1)); } } } |
出力結果
3.4の四捨五入結果⇒ 3
3.5の四捨五入結果⇒ 4
0.5の四捨五入結果⇒ 1
1.0の四捨五入結果⇒ 1
3.333の四捨五入結果⇒ 3
roundメソッドで小数点以下を四捨五入して表示しています。
四捨五入する値が負の数である場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 小数点以下の四捨五入を計算する public class Main { public static void main(String[] args) throws Exception { double[] values = {-3.4, -3.7, -0.5, -1.0, -3.333}; for (double val2 : values) { //小数点以下の四捨五入をする System.out.println( val2 + "の四捨五入結果⇒ " + Math.round(val2)); } } } |
出力結果
-3.4の四捨五入結果⇒ -3
-3.7の四捨五入結果⇒ -4
-0.5の四捨五入結果⇒ 0
-1.0の四捨五入結果⇒ -1
-3.333の四捨五入結果⇒ -3
負の整数の場合でも符号は気にしないで、数値のみを判断して四捨五入が行われます。
その為、-3.7は-4となります。
四捨五入する値が無限大である場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 小数点以下の四捨五入を計算する public class Main { public static void main(String[] args) throws Exception { double[] values = {Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY}; for (double val3 : values) { //小数点以下の四捨五入をする System.out.println( val3 + "の四捨五入結果⇒ " + Math.round(val3)); } } } |
出力結果
Infinityの四捨五入結果⇒ 9223372036854775807
-Infinityの四捨五入結果⇒ -9223372036854775808
無限大の場合は最大値、最小値を四捨五入して返します。
四捨五入する値が最大値、最小値である場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 小数点以下の四捨五入を計算する public class Main { public static void main(String[] args) throws Exception { long[] values = {Long.MAX_VALUE, Long.MIN_VALUE}; for (double val4 : values) { //小数点以下の四捨五入をする System.out.println( val4 + "の四捨五入結果⇒ " + Math.round(val4)); } } } |
出力結果
9.223372036854776E18の四捨五入結果⇒ 9223372036854775807
-9.223372036854776E18の四捨五入結果⇒ -9223372036854775808
変数の最大値、最小値を指定する場合は変数の最大値、最小値を四捨五入して返します。
四捨五入する値がNaNである場合
例
1 2 3 4 5 6 7 8 9 10 11 |
// 小数点以下の四捨五入を計算する public class Main { public static void main(String[] args) throws Exception { //小数点以下の四捨五入をする System.out.println( "NaNの四捨五入結果⇒ " + Math.round(Double.NaN)); } } |
出力結果
NaNの四捨五入結果⇒ 0
NaNの場合は0を返します。
今回のポイント
roundで小数点以下を四捨五入する
小数点以下の四捨五入を計算するにはMathクラスのroundメソッドを使用する
⚫︎ Mathクラスのroundメソッドで小数点以下の四捨五入を行う
⚫︎ 「-3.4」や「-3.5」場合は「-3」を戻し、「-3.6」の場合は「-4」を戻すようにパラメータに0.5を加え、その値を超えない範囲で最大(正の無限大に近い)の整数値を戻す
⚫︎ パラメータが無限大の場合は、その変数の最大値、最小値を四捨五入して返す
⚫︎ パラメータが最大値、最小値の場合は、その変数の最大値、最小値を四捨五入して返す
⚫︎ パラメータがNaNの場合は「0」を戻す
関連記事
小数点以下の切り捨てるfloorメソッドについてはこちらをご参考ください。
小数点以下の切り上げるceilメソッドについてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。