Java Math クラスは、min()、max()、avg()、sin()、cos()、tan()、round()、ceil()、floor()、abs( などの数学計算を実行するためのメソッドをいくつか提供します。 )など。
StrictMath クラスの数値メソッドの一部とは異なり、Math クラスの同等の関数のすべての実装は、ビットごとに同じ結果を返すように定義できません。この緩和により、厳密な再現性が要求されない場合でも、より優れたパフォーマンスでの実装が可能になります。
サイズが int または long で、結果が値の範囲をオーバーフローした場合、メソッド addExact()、subtractExact()、multiplyExact()、および toIntExact() は ArithmeticException をスローします。
インクリメント、デクリメント、除算、絶対値、否定オーバーフローなどの他の算術演算では、特定の最小値または最大値でのみ発生します。必要に応じて、最大値と最小値と比較してチェックする必要があります。
例1
public class JavaMathExample1 { public static void main(String[] args) { double x = 28; double y = 4; // return the maximum of two numbers System.out.println('Maximum number of x and y is: ' +Math.max(x, y)); // return the square root of y System.out.println('Square root of y is: ' + Math.sqrt(y)); //returns 28 power of 4 i.e. 28*28*28*28 System.out.println('Power of x and y is: ' + Math.pow(x, y)); // return the logarithm of given value System.out.println('Logarithm of x is: ' + Math.log(x)); System.out.println('Logarithm of y is: ' + Math.log(y)); // return the logarithm of given value when base is 10 System.out.println('log10 of x is: ' + Math.log10(x)); System.out.println('log10 of y is: ' + Math.log10(y)); // return the log of x + 1 System.out.println('log1p of x is: ' +Math.log1p(x)); // return a power of 2 System.out.println('exp of a is: ' +Math.exp(x)); // return (a power of 2)-1 System.out.println('expm1 of a is: ' +Math.expm1(x)); } }今すぐテストしてください
出力:
Maximum number of x and y is: 28.0 Square root of y is: 2.0 Power of x and y is: 614656.0 Logarithm of x is: 3.332204510175204 Logarithm of y is: 1.3862943611198906 log10 of x is: 1.4471580313422192 log10 of y is: 0.6020599913279624 log1p of x is: 3.367295829986474 exp of a is: 1.446257064291475E12 expm1 of a is: 1.446257064290475E12
例 2
public class JavaMathExample2 { public static void main(String[] args) { double a = 30; // converting values to radian double b = Math.toRadians(a); // return the trigonometric sine of a System.out.println('Sine value of a is: ' +Math.sin(a)); // return the trigonometric cosine value of a System.out.println('Cosine value of a is: ' +Math.cos(a)); // return the trigonometric tangent value of a System.out.println('Tangent value of a is: ' +Math.tan(a)); // return the trigonometric arc sine of a System.out.println('Sine value of a is: ' +Math.asin(a)); // return the trigonometric arc cosine value of a System.out.println('Cosine value of a is: ' +Math.acos(a)); // return the trigonometric arc tangent value of a System.out.println('Tangent value of a is: ' +Math.atan(a)); // return the hyperbolic sine of a System.out.println('Sine value of a is: ' +Math.sinh(a)); // return the hyperbolic cosine value of a System.out.println('Cosine value of a is: ' +Math.cosh(a)); // return the hyperbolic tangent value of a System.out.println('Tangent value of a is: ' +Math.tanh(a)); } }今すぐテストしてください
出力:
Sine value of a is: -0.9880316240928618 Cosine value of a is: 0.15425144988758405 Tangent value of a is: -6.405331196646276 Sine value of a is: NaN Cosine value of a is: NaN Tangent value of a is: 1.5374753309166493 Sine value of a is: 5.343237290762231E12 Cosine value of a is: 5.343237290762231E12 Tangent value of a is: 1.0
Java 数学メソッド
の java.lang.Math クラスには、対数、立方根、三角関数などの基本的な数値演算を実行するためのさまざまなメソッドが含まれています。さまざまな Java 数学メソッドは次のとおりです。
基本的な数学の方法
方法 | 説明 |
---|---|
Math.abs() | 指定された値の絶対値を返します。 |
Math.max() | 2 つの値の最大値を返します。 |
Math.min() | 2 つの値のうちの最小値を返すために使用されます。 |
Math.round() | 小数を最も近い値に四捨五入するために使用されます。 |
Math.sqrt() | これは、数値の平方根を返すために使用されます。 |
Math.cbrt() | これは、数値の立方根を返すために使用されます。 |
Math.pow() | 最初の引数を 2 番目の引数でべき乗した値を返します。 |
Math.sign() | 指定された値の符号を見つけるために使用されます。 |
Math.ceil() | これは、引数または数学的整数以上の最小の整数値を見つけるために使用されます。 |
Math.copySign() | これは、第 1 引数の絶対値と第 2 引数で指定された符号を求めるために使用されます。 |
Math.nextAfter() | これは、2 番目の引数の方向で最初の引数に隣接する浮動小数点数を返すために使用されます。 |
Math.nextUp() | 正の無限大の方向で「d」に隣接する浮動小数点値を返します。 |
Math.nextDown() | d に隣接する負の無限大の方向の浮動小数点値を返します。 |
Math.floor() | これは、引数以下であり、double 値の数学的整数に等しい最大の整数値を見つけるために使用されます。 |
Math.floorDiv() | これは、代数商以下の最大の整数値を見つけるために使用されます。 |
Math.random() | 「0.0」以上、「1.0」未満の、正の符号が付いた「double」値を返します。 |
Math.rint() | 指定された引数に最も近く、数学的整数に等しい double 値を返します。 |
Math.hypot() | sqrt(x を返します2�+y2) 中間のオーバーフローまたはアンダーフローはありません。 |
Math.ulp() | 引数の ulp のサイズを返します。 |
Math.getExponent() | これは、値の表現に使用される不偏指数を返すために使用されます。 |
Math.IEEEremainder() | これは、IEEE 754 標準で規定されている 2 つの引数の剰余演算を計算し、値を返すために使用されます。 |
Math.addExact() | これは引数の合計を返すために使用され、結果が int または long でオーバーフローした場合は例外をスローします。 |
Math.subtractExact() | 引数の差を返し、結果が int でオーバーフローした場合は例外をスローします。 |
Math.multiplyExact() | これは引数の積を返すために使用され、結果が int または long でオーバーフローした場合は例外をスローします。 |
Math.incrementExact() | 1 ずつ増分した引数を返し、結果が int でオーバーフローした場合は例外をスローします。 |
Math.decrementExact() | これは、引数を 1 減分して返し、結果が int または long でオーバーフローした場合に例外をスローするために使用されます。 |
Math.negateExact() | これは引数の否定を返すために使用され、結果が int または long でオーバーフローした場合は例外をスローします。 |
Math.toIntExact() | これは「long」引数の値を返し、値が int でオーバーフローした場合は例外をスローします。 |
対数演算方法
方法 | 説明 |
---|---|
Math.log() | 「double」値の自然対数を返します。 |
Math.log10() | これは、「double」値の底 10 の対数を返すために使用されます。 |
Math.log1p() | 引数と 1 の合計の自然対数を返します。 |
Math.exp() | E を double 値で累乗して返します。ここで、E はオイラー数であり、2.71828 にほぼ等しくなります。 |
Math.expm1() | E のべき乗を計算し、そこから 1 を引くために使用されます。 |
三角関数の計算方法
方法 | 説明 |
---|---|
Math.sin() | これは、指定された double 値の三角正弦値を返すために使用されます。 |
Math.cos() | これは、指定された double 値の三角コサイン値を返すために使用されます。 |
Math.tan() | これは、指定された double 値の三角正接値を返すために使用されます。 |
Math.asin() | 指定された double 値の三角関数逆正弦値を返すために使用されます。 |
Math.acos() | これは、指定された double 値の三角関数逆余弦値を返すために使用されます。 |
Math.atan() | これは、指定された double 値の三角関数の逆正接値を返すために使用されます。 |
双曲線数学法
方法 | 説明 |
---|---|
Math.sinh() | これは、指定された double 値の三角関数双曲線コサイン値を返すために使用されます。 |
Math.cosh() | これは、指定された double 値の三角関数双曲線正弦値を返すために使用されます。 |
Math.tanh() | これは、指定された double 値の三角関数双曲線正接値を返すために使用されます。 |
角度の計算方法
方法 | 説明 |
---|---|
Math.toDegrees | これは、指定されたラジアン角度を度単位で測定された同等の角度に変換するために使用されます。 |
Math.toRadians | これは、指定された度の角度をラジアンで測定された同等の角度に変換するために使用されます。 |