Javaで絶対値を取得したい
Mathクラスのabsクラスの使い方が知りたい
こんにちは!エンジニアの中沢です。Javaには絶対値を取得するためにMathクラスのabsメソッドがあります。
この記事では、Mathクラスのabsメソッドで絶対値を取得する方法や注意点について、以下の内容で詳しく解説していきます。
- そもそも絶対値とは
- Math.absで絶対値を取得する方法
- Math.absの注意点
絶対値を使えば二つの値がどれだけ離れているかの確認ができるので上手く活用してください。
今回はこれらの方法を覚えるために、「absメソッド」で絶対値を取得する方法をわかりやすく解説します!
絶対値とは
絶対値とは値が「0」からどれだけ離れているかを表す距離のことです。絶対値は、マイナスの値からマイナスを取ってプラスの値にすることで取得できます。
数学では絶対値は 「|a|」 のように記述しますが、Javaではabsメソッドを使います。プログラムの中では、変数の値をプラスの値で欲しいときや、二つの値の差をプラスの値で取得したいときなどに使われます。
絶対値の詳細についてはWikipediaでも詳しく解説されています。
Wikipedia
Math.absで絶対値を取得する
絶対値を取得するには、Mathクラスのabsメソッドを使います。absメソッドはstaticメソッドなのでそのまま呼び出せます。
absメソッドの引数には、int型、long型、float型、double型を指定できます。
次のプログラムで絶対値を取得する方法を確認してみましょう。
public class Main {
public static void main(String[] args) {
int num1 = 123;
int num2 = -123;
num1 = Math.abs(num1);
num2 = Math.abs(num2);
System.out.println(num1);
System.out.println(num2);
}
}
実行結果:
123
123
このようにして、絶対値を取得することができました。
Math.absの注意点
引数が「0」や「無限大」の場合
ここでは、引数が「0」や「無限大」の場合の絶対値について解説します。Javaの絶対値の計算では、マイナスの「0」や「無限大」もプラスになります。
次のプログラムで確認してみましょう。
public class Main {
public static void main(String[] args) {
double num1 = Double.POSITIVE_INFINITY;
double num2 = Double.NEGATIVE_INFINITY;
double num3 = 0.0;
double num4 = -0.0;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
num1 = Math.abs(num1);
num2 = Math.abs(num2);
num3 = Math.abs(num3);
num4 = Math.abs(num4);
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
}
}
実行結果:
Infinity
-Infinity
0.0
-0.0
Infinity
Infinity
0.0
0.0
このプログラムの実行結果から、マイナスの「0」や「無限大」もプラスになることが確認できました。
引数が最小値の場合
引数が最小値の場合には、absメソッドを使っても符号がプラスになることはありません。これは、int型では最小値は「-2147483648」ですが、最大値が「2147483647」なので、プラスにすると最大値に収まらないため、負の値が返されるようになっています。
次のプログラムで確認してみましょう。
public class Main {
public static void main(String[] args) {
int num = Integer.MIN_VALUE;
System.out.println(num);
num = Math.abs(num);
System.out.println(num);
System.out.println(Integer.MAX_VALUE);
}
}
実行結果:
-2147483648
-2147483648
2147483647
最小値の場合には、符号がマイナスのままであることが確認できました。
まとめ
いかがでしたか?今回は「Mathクラス」の「absメソッド」で絶対値を取得する方法を解説しました、
引数が最小値の場合には、absメソッドを使っても符号がプラスにならないので注意してくださいね。もし、絶対値の使い方を忘れてしまったらこの記事を確認してください!