Math クラス
よく使う数学関数です。
「Math クラス」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
Mathクラス
java.lang.Mathはstaticな数学メソッドを提供する組み込みクラスです。java.langに含まれているため、importは必要ありません。クラスに対してメソッドを呼び出します。例:Math.sqrt(2)。
累乗と平方根
Math.pow(base, exp)は数値を累乗し、Math.sqrt(x)は平方根を求めます。どちらもdoubleを返します。
public class Main {
public static void main(String[] args) {
System.out.println(Math.pow(2, 10));
System.out.println(Math.sqrt(144));
}
}絶対値
Math.absは数値の符号を取り除き、大きさを返します。int、long、float、doubleに対してオーバーロードされています。
public class Main {
public static void main(String[] args) {
System.out.println(Math.abs(-42));
System.out.println(Math.abs(-3.14));
}
}最小値と最大値
Math.minとMath.maxは、2つの値のうち小さいほう、または大きいほうを返します。
public class Main {
public static void main(String[] args) {
System.out.println(Math.max(10, 25));
System.out.println(Math.min(10, 25));
}
}定数PIとE
Mathには、よく知られた2つの定数Math.PIとMath.Eが用意されています。これらはpublic static final doubleフィールドです。
public class Main {
public static void main(String[] args) {
double radius = 3;
double area = Math.PI * radius * radius;
System.out.println("Area: " + area);
}
}三角関数
Math.sin、Math.cos、Math.tanなどの三角関数は、度ではなくラジアンを使用します。Math.toRadiansで変換してください。
public class Main {
public static void main(String[] args) {
double degrees = 90;
double radians = Math.toRadians(degrees);
System.out.println(Math.sin(radians));
}
}対数と指数関数
Math.logは自然対数(底e)、Math.log10は常用対数(底10)を求め、Math.expはeを累乗します。
public class Main {
public static void main(String[] args) {
System.out.println(Math.log10(1000));
System.out.println(Math.exp(1));
}
}距離を求めるhypot
Math.hypot(x, y)は、xの二乗とyの二乗の和の平方根を、途中でオーバーフローさせずに計算します。2Dの距離を求めるのに適しています。
public class Main {
public static void main(String[] args) {
double dist = Math.hypot(3, 4);
System.out.println(dist);
}
}整数オーバーフロー用ヘルパー
Math.addExactやMath.multiplyExactなどのメソッドは、結果がオーバーフローした場合に、暗黙的に循環させるのではなくArithmeticExceptionをスローします。
public class Main {
public static void main(String[] args) {
try {
int result = Math.addExact(Integer.MAX_VALUE, 1);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("Overflow detected: " + e.getMessage());
}
}
}戻り値の型はdouble
Mathのほとんどのメソッドはdoubleを返します。intが必要な場合は、(int) Math.sqrt(16)のように明示的にキャストする必要があります。キャストすると0方向に切り捨てられる点に注意してください。
public class Main {
public static void main(String[] args) {
int side = (int) Math.sqrt(16);
System.out.println(side);
}
}簡単な計算
複数のMathメソッドを組み合わせて、二乗と平方根による斜辺の計算など、結果を求めることができます。
public class Main {
public static void main(String[] args) {
double a = 5, b = 12;
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
System.out.println("Hypotenuse: " + c);
}
}理解度チェック
Mathクラスについての理解度を確認しましょう。
まとめ
Mathクラスについて学びました。
- staticメソッドを提供し、
java.langに含まれているため、importは必要ありません。 pow、sqrt、abs、min、maxで、よく使う処理を行えます。- 定数
PIとEを利用できます。 - 三角関数はラジアンを使用し、ほとんどのメソッドは
doubleを返します。
よくある質問
「Math クラス」レッスンは無料ですか?
はい。「Math クラス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「Math クラス」で何を学びますか?
よく使う数学関数です。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Math クラス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Math クラス
- 乱数の生成
- 乱数の範囲とシャッフル
- Math の丸めと上限・下限