JavaのMathクラスについて解説!Mathを使うと高度な計算が楽になる!

Java Mathクラスとは

Java Mathクラスは、Javaの演算子が提供しているよりも高度な数学計算ができます。
例えば、対数関数、平方根、立方根、2つの値の最大値と最小値や、円の値、三角関数(sin、cos、tanなど)等を計算が簡単にできるメソッドが含まれてます。
Mathクラスはjava.langパッケージに位置しており、クラス名はjava.lang.Mathです。

Mathクラス の機能は多いですが、ひとつづつ解説していきます。

基本的な数学関数

java.lang.Mathは、絶対値や2つの値の最高値と最低値、円の値、ランダム値などを取得するための基本的なメソッドが含まれています。

Math.abs()

Math.abs()関数は、渡されたパラメーターの絶対値を返します。返す値は正の値になります。
パラメータ値が負の場合、負の符号が削除された正の値が返されます。

Math.abs() メソッドの例

30の絶対値:30
ー40の絶対値:40

Math.abs()メソッドは4種類でオーバーロードされています。

このメソッドのどれが呼び出されるかは、Math.abs() メソッドに渡されるパラメーターの型によって異なります。

Math.ceil()

Math.ceil()関数は、浮動小数点値を最も近い整数値に切り上げます。

Math.ceil()の例

出力結果

このJavaコードを実行した後、ceil変数の値は9.0になります。

Math.floor()

Math.floor()関数は、浮動小数点値を最も近い整数値に切り捨てます。

Math.floor()の例

出力結果

このJavaコードを実行した後、ceil変数の値は8.0になります。

Math.floorDiv()

Math.floorDiv()メソッドは、整数(intまたはlong)を別の整数で割り、結果を最も近い整数値に切り捨てます。
結果が正の場合、はJava 除算演算子を使用した場合と同じ結果になります。
ですが負の場合、結果は同じではありません。
floorDiv()メソッドは、最も近い負の整数に切り捨てます。

除算演算子(/)との違いを見てみましょう。

Math.floorDiv()の例

出力結果

result1:-12.0
result2:-11.0

Math.min()

Math.min()メソッドは、パラメーターとして渡された2つの値の最小値を返します。

Math.min()の例

出力結果

このコードを実行すると、min変数の値は10になります。

Math.max()

Math.max()メソッドは、パラメーターとして渡された2つの値の最大値を返します。

Math.max()の例

この2つのJavaコードを実行した後、down変数の値は 23.0が含まれ、up変数の値は24.0になります。

Math.random()

Math.random()メソッドは、0から1の間のランダムな浮動小数点数を返します。

JavaのMath.random()の例1

0から100などのランダムな値を取得するには、Math.random()で返された値に(100など)を掛ければ実装できます。

JavaのMath.random()の例2

整数値が必要な場合はround()、floor()またはceil()メソッドを使用します。

指数と数学関数

Java Mathクラスには、指数計算と対数計算を目的とした一連の関数も含まれています。
このセクションでは、よく使う数学関数を紹介します。

Math.exp()

Math.exp()関数は、e(オイラーの数)をパラメーターとして指定された値で累乗して返します。

Math.exp() 例

実行結果

出力結果

exp1 = 2.718281828459045
exp2 = 7.38905609893065

Math.log()

Math.log()メソッドは、指定されたパラメーターの対数を返します。
Math.log()の逆の値を返すのはMath.exp()。

JavaのMath.log()の例

出力結果

出力結果

log1 = 0.0
log2 = 2.302585092994046

Math.log10()

Math.log10メソッドは、引数に指定した値から常用対数を求めます。常用対数とは10を底にした対数なので、logの後に10がついた関数になっています。

Math.log10()の例

出力結果

出力結果

log10_1 = 0.0
log10_2 = 2.0

Math.pow()

Math.pow()は、最初のパラメーターの値を2番目のパラメーターで累乗した値を返します。

Math.pow()の例

出力結果

出力結果

pow1= 4.0
pow1 = 256.0

例では 「2の2乗」4 と「2の8乗」256を計算しています。

Math.sqrt()

Math.sqrt()メソッドは、指定されたパラメーターの平方根を計算します。
JavaのMath.sqrt()の例

出力結果

出力結果

sqrt1 = 2.0
sqrt2 = 3.0

三角関数

Java Mathクラスは、サイン、コサイン、タンジェント等、三角法で計算する為の関数があります。
このセクションでは、最も使用される三角関数について説明します。

Math.PI

Math.PIは、円周率を使用する為に必要な定数(3.14…..)です。

Math.sin()

Math.sin()メソッドは、指定された角度の正弦(サイン)を計算します。

JavaのMath.sin() の例

Math.cos()

Math.cos()メソッドは、指定された角度値ラジアン単位のコサイン値を計算します。

JavaのMath.cos()の例

Math.tan()

Math.tan()メソッドは、指定された角度値ラジアン単位のタンジェント値を計算します。

JavaのMath.tan()例

Math.asin()

Math.asin()メソッドは、1〜-1の値の逆正弦値を計算します。

JavaのMath.asin()の例

Math.acos()

Math.acos()メソッドは、1〜-1の値の逆余弦値を計算します。

JavaのMath.acos()の例

Math.atan()

Math.atan()メソッドは、1〜-1の値のアークタンジェンス値を計算します。

JavaのMath.atan()の例

Math.atan2()

Math.atan2()数学的に どのような方法で行うのか正確にはわかりませんが、JavaDocの内容は次のとおりです。

“直交座標(x、y)から極座標(r、theta)への変換から角度thetaを返します。”

Math.sinh()

Math.sinh()メソッドは、1〜-1の値の双曲線正弦値を計算します。

JavaのMath.sinh()の例

Math.cosh()

Math.cosh()メソッドは、1〜-1の値の双曲線余弦値を計算します。

JavaのMath.cosh()の例

Math.tanh()

Math.tanh()メソッドは、1〜-1の値の双曲線タンジェンス値を計算します。

JavaのMath.tanh()の例

Math.toDegrees()

Math.toDegrees()メソッドは、角度をラジアンから角度に変換します。

JavaのMath.toDegrees()の例

Math.toRadians()

Math.toRadians()メソッドは、度単位の角度をラジアンに変換します。

JavaのMath.toRadians()の例

Writer
Ryotin

Ryotin

現役フリーランスエンジニアです。使ってるエージェントはフライテック!得意言語はJava。月収は75万円。SESのフリーランスではこれ以上稼ぐのは厳しそう...とはいってもサラリーマンの時より倍の収入だから家族も喜んでるけどね!

最新の案件情報

フリーランスエンジニアの案件探し