public final class Math extends Object
Math
クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
StrictMath
クラスの一部の数値メソッドとは異なり、Math
クラスの等価関数のすべての実装は、ビット対ビットの同じ結果を返すようには定義されていません。このゆるやかさによって、厳密な再現性が要求されない実装においてパフォーマンスの向上が可能になります。
デフォルトでは、Math
の多くのメソッドは単に、StrictMath
内の対応するメソッドを実装として呼び出します。コード・ジェネレータは、プラットフォーム固有のネイティブ・ライブラリまたはマイクロプロセッサの命令がある場合は積極的に使用し、高性能なMath
メソッドの実装を提供します。そのような高性能な実装でもMath
の仕様に準拠する必要があります。
実装仕様の品質は、2つのプロパティ、返される結果の正確さ、およびメソッドの単調性と関係があります。浮動小数点Math
メソッドの正確さは、ulp (最新位置の単位)で計測されます。浮動小数点形式が指定された場合、特定の実数値のulpはその数値を囲んでいる2つの浮動小数点値の距離になります。メソッドの正確性を、特定の引数に対してではなく全体として論じる場合に示されるulp数は、すべての引数における最大誤差になります。メソッドが返すエラーが常に0.5 ulp未満の場合、そのメソッドは実際の結果にもっとも近い浮動小数点数を常に返します。この種のメソッドは正しく丸められています。通常は、正しく丸められたメソッドを使用するのが浮動小数点近似値を得る最善の方法ですが、多数の浮動小数点メソッドを正しく丸めるのは、実際的ではありません。その代わりにMath
クラスの場合、1または2 ulpより大きいエラーが特定のメソッドで許可されます。非公式には1 ulpのエラーでは、正確な結果が表現可能な数値の場合に正確な結果が返されます。そうでない場合、正確な結果を囲む2つの浮動小数点値のいずれかが返される可能性があります。正確な結果の絶対値が大きい場合、カッコの一方の端点が無限である可能性があります。個別の引数の正確さに加え、メソッドの異なる引数間の適切な関係も重要です。このため、0.5 ulpより大きいエラーを保持するメソッドは、半単調であることが求められます。数学関数が非増加である場合は常に、浮動小数点近似値も非増加になります。1 ulpの正確性を保持する近似値すべてが、自動的に単調要件を満たすわけではありません。
このプラットフォームでは、intおよびlongプリミティブ型を使って2の補数の符号付き整数演算を実行します。開発者は、算術演算が一貫して正しい結果を生成するようにプリミティブ型を選択する必要があります。これは、場合によっては、それらの演算が計算の値の範囲をオーバーフローしないことを意味しています。ベスト・プラクティスは、プリミティブ型と、オーバーフローを回避するアルゴリズムを選択することです。サイズがint
またはlong
であり、オーバーフロー・エラーが検出される必要があるという場合、addExact
、subtractExact
、multiplyExact
、およびtoIntExact
の各メソッドは、結果がオーバーフローするとArithmeticException
をスローします。除算、絶対値、増分、減分、否定などの他の算術演算の場合、オーバーフローは特定の最小値または最大値でのみ発生するため、必要に応じてその最小値または最大値と照らしてチェックする必要があります。
修飾子と型 | フィールドと説明 |
---|---|
static double |
E
自然対数の底eにもっとも近い
double 値です。 |
static double |
PI
円周とその直径の比piにもっとも近い
double 値です。 |
修飾子と型 | メソッドと説明 |
---|---|
static double |
abs(double a)
double 値の絶対値を返します。 |
static float |
abs(float a)
float 値の絶対値を返します。 |
static int |
abs(int a)
int 値の絶対値を返します。 |
static long |
abs(long a)
long 値の絶対値を返します。 |
static double |
acos(double a)
指定された値の逆余弦(アーク・コサイン)を返します。返される角度の範囲は、0.0からpiです。
|
static int |
addExact(int x, int y)
引数の合計を返します。結果が
int をオーバーフローする場合は例外をスローします。 |
static long |
addExact(long x, long y)
引数の合計を返します。その結果が
long をオーバーフローする場合は例外をスローします。 |
static double |
asin(double a)
指定された値の逆正弦(アーク・サイン)を返します。返される角度の範囲は、-pi/2からpi/2です。
|
static double |
atan(double a)
指定された値の逆正接(アーク・タンジェント)を返します。返される角度の範囲は、-pi/2からpi/2です。
|
static double |
atan2(double y, double x)
直交座標(
x , y )から極座標(r, theta)への変換から得られる角度thetaを返します。 |
static double |
cbrt(double a)
double 値の立方根を返します。 |
static double |
ceil(double a)
引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)
double 値を返します。 |
static double |
copySign(double magnitude, double sign)
2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。
|
static float |
copySign(float magnitude, float sign)
2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。
|
static double |
cos(double a)
指定された角度の余弦(コサイン)を返します。
|
static double |
cosh(double x)
double 値の双曲線余弦を返します。 |
static int |
decrementExact(int a)
引数を1だけ減分したものを返します。結果が
int をオーバーフローする場合は例外をスローします。 |
static long |
decrementExact(long a)
引数を1だけ減分したものを返します。結果が
long をオーバーフローする場合は例外をスローします。 |
static double |
exp(double a)
オイラー数eを
double 値で累乗した値を返します。 |
static double |
expm1(double x)
ex -1を返します。
|
static double |
floor(double a)
引数の値以下で、計算上の整数と等しい、最大の(正の無限大にもっとも近い)
double 値を返します。 |
static int |
floorDiv(int x, int y)
商代数以下の最大(正の無限大にもっとも近い)
int 値を返します。 |
static long |
floorDiv(long x, long y)
商代数以下の最大(正の無限大にもっとも近い)
long 値を返します。 |
static int |
floorMod(int x, int y)
int 引数のフロア・モジュラスを返します。 |
static long |
floorMod(long x, long y)
long 引数のフロア・モジュラスを返します。 |
static int |
getExponent(double d)
double の表現で使用されている、バイアスなしの指数を返します。 |
static int |
getExponent(float f)
float の表現で使用されている、バイアスなしの指数を返します。 |
static double |
hypot(double x, double y)
sqrt(x2 +y2)を返します(途中でオーバーフローやアンダーフローは発生しない)。
|
static double |
IEEEremainder(double f1, double f2)
IEEE 754標準に従って、2個の引数について剰余を計算します。
|
static int |
incrementExact(int a)
引数を1だけ増分して返します。結果が
int をオーバーフローした場合は例外をスローします。 |
static long |
incrementExact(long a)
引数を1だけ増分して返します。結果が
long をオーバーフローした場合は例外をスローします。 |
static double |
log(double a)
指定された
double 値の自然対数(底はe)を返します。 |
static double |
log10(double a)
double 値の10を底とする対数を返します。 |
static double |
log1p(double x)
引数と1の合計の自然対数を返します。
|
static double |
max(double a, double b)
2つの
double 値のうち大きいほうを返します。 |
static float |
max(float a, float b)
2つの
float 値のうち大きいほうを返します。 |
static int |
max(int a, int b)
2つの
int 値のうち大きいほうを返します。 |
static long |
max(long a, long b)
2つの
long 値のうち大きいほうを返します。 |
static double |
min(double a, double b)
2つの
double 値のうち小さいほうを返します。 |
static float |
min(float a, float b)
2つの
float 値のうち小さいほうを返します。 |
static int |
min(int a, int b)
2つの
int 値のうち小さいほうを返します。 |
static long |
min(long a, long b)
2つの
long 値のうち小さいほうを返します。 |
static int |
multiplyExact(int x, int y)
引数の積を返します。結果が
int をオーバーフローした場合は例外をスローします。 |
static long |
multiplyExact(long x, long y)
引数の積を返します。結果が
long をオーバーフローした場合は例外をスローします。 |
static int |
negateExact(int a)
引数の否定を返します。結果が
int をオーバーフローした場合は例外をスローします。 |
static long |
negateExact(long a)
引数の否定を返します。結果が
long をオーバーフローした場合は例外をスローします。 |
static double |
nextAfter(double start, double direction)
2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。
|
static float |
nextAfter(float start, double direction)
2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。
|
static double |
nextDown(double d)
負の無限大方向で
d に隣接する浮動小数点値を返します。 |
static float |
nextDown(float f)
負の無限大方向で
f に隣接する浮動小数点値を返します。 |
static double |
nextUp(double d)
正の無限大方向で
d に隣接する浮動小数点値を返します。 |
static float |
nextUp(float f)
正の無限大方向で
f に隣接する浮動小数点値を返します。 |
static double |
pow(double a, double b)
1番目の引数を、2番目の引数で累乗した値を返します。
|
static double |
random()
0.0 以上で1.0 より小さい、正の符号の付いたdouble 値を返します。 |
static double |
rint(double a)
引数の値にもっとも近く、計算上の整数に等しい
double 値を返します。 |
static long |
round(double a)
引数にもっとも近い
long を返します。同数の場合は正の無限大方向に丸めます。 |
static int |
round(float a)
引数にもっとも近い
int を返します。同数の場合は正の無限大方向に丸めます。 |
static double |
scalb(double d, int scaleFactor)
double値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、
d ×2scaleFactor を丸めて返します。 |
static float |
scalb(float f, int scaleFactor)
float値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、
f ×2scaleFactor を丸めて返します。 |
static double |
signum(double d)
引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1.0、引数がゼロより小さい場合は -1.0です。
|
static float |
signum(float f)
引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1、引数がゼロより小さい場合は -1です。
|
static double |
sin(double a)
指定された角度の正弦(サイン)を返します。
|
static double |
sinh(double x)
double 値の双曲線正弦を返します。 |
static double |
sqrt(double a)
double 値の正しく丸めた正の平方根を返します。 |
static int |
subtractExact(int x, int y)
引数の差分を返します。結果が
int をオーバーフローした場合は例外をスローします。 |
static long |
subtractExact(long x, long y)
引数の差分を返します。結果が
long をオーバーフローした場合は例外をスローします。 |
static double |
tan(double a)
指定された角度の正接(タンジェント)を返します。
|
static double |
tanh(double x)
double 値の双曲線正接を返します。 |
static double |
toDegrees(double angrad)
ラジアンで計測した角度を、相当する度に変換します。
|
static int |
toIntExact(long value)
long 引数の値を返します。その値がint に収まらない場合は例外をスローします。 |
static double |
toRadians(double angdeg)
度で計測した角度を、相当するラジアンに変換します。
|
static double |
ulp(double d)
引数のulpのサイズを返します。
|
static float |
ulp(float f)
引数のulpのサイズを返します。
|
public static final double E
double
値です。public static final double PI
double
値です。public static double sin(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- ラジアンで表した角度。public static double cos(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- ラジアンで表した角度。public static double tan(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- ラジアンで表した角度。public static double asin(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- この値の逆正弦(アーク・サイン)が返される。public static double acos(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- この値の逆余弦(アーク・コサイン)が返される。public static double atan(double a)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- この値の逆正接(アーク・タンジェント)が返される。public static double toRadians(double angdeg)
angdeg
- 度で計測した角度angdeg
の計測値。public static double toDegrees(double angrad)
cos(toRadians(90.0))
が正確に0.0
に対応することを期待できません。angrad
- ラジアンで表した角度angrad
の計測値。public static double exp(double a)
double
値で累乗した値を返します。特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- eの累乗で使用する指数。a
。ここで、eは自然対数の底。public static double log(double a)
double
値の自然対数(底はe)を返します。特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- 値a
(a
の自然対数)。public static double log10(double a)
double
値の10を底とする対数を返します。特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- 値a
の10を底とする対数。public static double sqrt(double a)
double
値の正しく丸めた正の平方根を返します。特例として:
double
値が返されます。a
- 値。a
の正の平方根。引数がNaNであるかゼロよりも小さい場合は、結果もNaN。public static double cbrt(double a)
double
値の立方根を返します。正の有限値x
の場合、cbrt(-x)== -cbrt(x)
。つまり、負の値の立方根は、値の絶対値の立方根を負にしたものです。特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。
a
- 値。a
の立方根。public static double IEEEremainder(double f1, double f2)
f1 - f2
× nに等しくなります。ここで、nは商f1/f2
の正確な値にもっとも近い整数です。f1/f2
に同じ程度に近似する整数が2つ存在する場合、nには偶数が選択されます。剰余がゼロになる場合、その符号は1番目の引数の符号と同じになります。特例として:
f1
- 被除数。f2
- 除数。f1
をf2
で除算したときの剰余。public static double ceil(double a)
double
値を返します。特例として:
Math.ceil(x)
の値は-Math.floor(-x)
とまったく同じです。a
- 値。public static double floor(double a)
double
値を返します。特例として:
a
- 値。public static double rint(double a)
double
値を返します。2つのdouble
値の整数が同じ程度に近似している場合、結果は偶数の整数値になります。特例として:
a
- double
値。a
にもっとも近く、計算上の整数に等しい浮動小数点値。public static double atan2(double y, double x)
x
, y
)から極座標(r, theta)への変換から得られる角度thetaを返します。このメソッドは、-pi - piの範囲でy/x
の逆正接(アーク・タンジェント)を計算することで、位相theta (シータ)を計算します。特例として:
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。計算結果は、正確な結果の2 ulp以内である必要があります。結果は半単調なものに限ります。
y
- 縦座標x
- 横座標public static double pow(double a, double b)
double
値として正確に表される場合は1番目の引数を2番目の引数で累乗した計算値とまったく同じ結果になります。(上記の説明においては、ceil
メソッドによる固定小数点、または同じことですが、floor
メソッドによる固定小数点の場合に限り、浮動小数点値は整数として考えます。そのメソッドを適用した結果と同じ場合に限り、値は引数が1つのメソッドの固定小数点となります。)
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
a
- 底。b
- 指数。a
b
。public static int round(float a)
int
を返します。同数の場合は正の無限大方向に丸めます。
特例として:
Integer.MIN_VALUE
以下の任意の値である場合、結果はInteger.MIN_VALUE
の値に等しくなります。
Integer.MAX_VALUE
以上の任意の値である場合、結果はInteger.MAX_VALUE
の値に等しくなります。a
- 整数に丸める浮動小数点値。int
値に丸めた値。Integer.MAX_VALUE
, Integer.MIN_VALUE
public static long round(double a)
long
を返します。同数の場合は正の無限大方向に丸めます。
特例として:
Long.MIN_VALUE
以下の任意の値である場合、結果はLong.MIN_VALUE
の値に等しくなります。
Long.MAX_VALUE
以上の任意の値である場合、結果はLong.MAX_VALUE
の値に等しくなります。a
- long
に丸める浮動小数点値。long
値に丸めた値。Long.MAX_VALUE
, Long.MIN_VALUE
public static double random()
0.0
以上で1.0
より小さい、正の符号の付いたdouble
値を返します。戻り値は、この範囲からの一様分布によって擬似乱数的に選択されます。
最初にこのメソッドが呼び出されたときに、メソッドは単一の新しい擬似乱数ジェネレータを作成します。これは、次の式とまったく同じです。
new java.util.Random()
この新しい擬似乱数ジェネレータは、以後このメソッドへのすべての呼出しに使われます。ほかの場所では使われません。
このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。
0.0
以上1.0
未満の擬似乱数double
。Random.nextDouble()
public static int addExact(int x, int y)
int
をオーバーフローする場合は例外をスローします。x
- 最初の値y
- 2番目の値ArithmeticException
- 結果がintをオーバーフローする場合public static long addExact(long x, long y)
long
をオーバーフローする場合は例外をスローします。x
- 最初の値y
- 2番目の値ArithmeticException
- 結果がlongをオーバーフローする場合public static int subtractExact(int x, int y)
int
をオーバーフローした場合は例外をスローします。x
- 最初の値y
- 最初の値から減算する2番目の値ArithmeticException
- 結果がintをオーバーフローする場合public static long subtractExact(long x, long y)
long
をオーバーフローした場合は例外をスローします。x
- 最初の値y
- 最初の値から減算する2番目の値ArithmeticException
- 結果がlongをオーバーフローする場合public static int multiplyExact(int x, int y)
int
をオーバーフローした場合は例外をスローします。x
- 最初の値y
- 2番目の値ArithmeticException
- 結果がintをオーバーフローする場合public static long multiplyExact(long x, long y)
long
をオーバーフローした場合は例外をスローします。x
- 最初の値y
- 2番目の値ArithmeticException
- 結果がlongをオーバーフローする場合public static int incrementExact(int a)
int
をオーバーフローした場合は例外をスローします。a
- 増分する値ArithmeticException
- 結果がintをオーバーフローする場合public static long incrementExact(long a)
long
をオーバーフローした場合は例外をスローします。a
- 増分する値ArithmeticException
- 結果がlongをオーバーフローする場合public static int decrementExact(int a)
int
をオーバーフローする場合は例外をスローします。a
- 減分する値ArithmeticException
- 結果がintをオーバーフローする場合public static long decrementExact(long a)
long
をオーバーフローする場合は例外をスローします。a
- 減分する値ArithmeticException
- 結果がlongをオーバーフローする場合public static int negateExact(int a)
int
をオーバーフローした場合は例外をスローします。a
- 否定する値ArithmeticException
- 結果がintをオーバーフローする場合public static long negateExact(long a)
long
をオーバーフローした場合は例外をスローします。a
- 否定する値ArithmeticException
- 結果がlongをオーバーフローする場合public static int toIntExact(long value)
long
引数の値を返します。その値がint
に収まらない場合は例外をスローします。value
- long値ArithmeticException
- argument
がintをオーバーフローする場合public static int floorDiv(int x, int y)
int
値を返します。特殊な場合が1つあります。被除数がInteger.MIN_VALUEで、除数が-1
である場合、整数型オーバーフローが発生して、結果はInteger.MIN_VALUE
に等しくなります。
通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。floor丸めモードでは、正確な結果が負の場合は、切捨てとは異なる結果が生成されます。
floorDiv
と/
演算子の結果は同じになります。floorDiv(4, 3) == 1
であり、(4 / 3) == 1
になります。floorDiv
は商に等しいかそれよりも小さい整数を返し、/
演算子はゼロにもっとも近い整数を返します。floorDiv(-4, 3) == -2
であるのに対し、(-4 / 3) == -1
になります。
x
- 被除数y
- 除数int
値。ArithmeticException
- 除数y
がゼロである場合floorMod(int, int)
, floor(double)
public static long floorDiv(long x, long y)
long
値を返します。特殊な場合が1つあります。被除数がLong.MIN_VALUEで、除数が-1
である場合、整数型オーバーフローが発生して、結果はLong.MIN_VALUE
に等しくなります。
通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。floor丸めモードでは、正確な結果が負の場合は、切捨てとは異なる結果が生成されます。
例については、floorDiv(int, int)
を参照してください。
x
- 被除数y
- 除数long
値。ArithmeticException
- 除数y
がゼロである場合floorMod(long, long)
, floor(double)
public static int floorMod(int x, int y)
int
引数のフロア・モジュラスを返します。
フロア・モジュラスはx - (floorDiv(x, y) * y)
であり、除数y
と同じ符号を持ち、-abs(y) < r < +abs(y)
の範囲にあります。
floorDiv
とfloorMod
の関係は次のようになります。
floorDiv(x, y) * y + floorMod(x, y) == x
floorMod
と%
演算子との値の違いは、商に等しいかそれよりも小さい整数を返すfloorDiv
と、ゼロにもっとも近い整数を返す/
演算子の違いによるものです。
例
floorMod
と%
演算子の結果は同じになります。floorMod(4, 3) == 1
; および(4 % 3) == 1
%
演算子とは異なるものになります。floorMod(+4, -3) == -2
; および(+4 % -3) == +1
floorMod(-4, +3) == +2
; および(-4 % +3) == -1
floorMod(-4, -3) == -1
; および(-4 % -3) == -1
引数の符号が不明で、正のモジュラスが必要な場合は、それを(floorMod(x, y) + abs(y)) % abs(y)
として計算できます。
x
- 被除数y
- 除数x - (floorDiv(x, y) * y)
ArithmeticException
- 除数y
がゼロである場合floorDiv(int, int)
public static long floorMod(long x, long y)
long
引数のフロア・モジュラスを返します。
フロア・モジュラスはx - (floorDiv(x, y) * y)
であり、除数y
と同じ符号を持ち、-abs(y) < r < +abs(y)
の範囲にあります。
floorDiv
とfloorMod
の関係は次のようになります。
floorDiv(x, y) * y + floorMod(x, y) == x
例については、floorMod(int, int)
を参照してください。
x
- 被除数y
- 除数x - (floorDiv(x, y) * y)
ArithmeticException
- 除数y
がゼロである場合floorDiv(long, long)
public static int abs(int a)
int
値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。
引数がInteger.MIN_VALUE
の値(int
の最小値)と等しい場合は、結果も同じ値(負の値)になります。
a
- 絶対値を決定する引数public static long abs(long a)
long
値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。
引数がLong.MIN_VALUE
の値(long
の最小値)と等しい場合は、結果も同じ値(負の値)になります。
a
- 絶対値を決定する引数public static float abs(float a)
float
値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。特例として:
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
a
- 絶対値を決定する引数public static double abs(double a)
double
値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。特例として:
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
a
- 絶対値を決定する引数public static int max(int a, int b)
int
値のうち大きいほうを返します。つまり、結果はInteger.MAX_VALUE
の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。a
- 引数。b
- 別の引数。a
とb
のどちらか大きい方。public static long max(long a, long b)
long
値のうち大きいほうを返します。つまり、結果はLong.MAX_VALUE
の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。a
- 引数。b
- 別の引数。a
とb
のどちらか大きい方。public static float max(float a, float b)
float
値のうち大きいほうを返します。つまり、結果は正の無限大に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。どちらかの値がNaNの場合はNaNを返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。a
- 引数。b
- 別の引数。a
とb
のどちらか大きい方。public static double max(double a, double b)
double
値のうち大きいほうを返します。つまり、結果は正の無限大に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。どちらかの値がNaNの場合はNaNを返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。a
- 引数。b
- 別の引数。a
とb
のどちらか大きい方。public static int min(int a, int b)
int
値のうち小さいほうを返します。つまり、結果はInteger.MIN_VALUE
の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。a
- 引数。b
- 別の引数。a
とb
のどちらか小さい方。public static long min(long a, long b)
long
値のうち小さいほうを返します。つまり、結果はLong.MIN_VALUE
の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。a
- 引数。b
- 別の引数。a
とb
のどちらか小さい方。public static float min(float a, float b)
float
値のうち小さいほうを返します。つまり、結果は負の無限大に近いほうの値となります。引数の値が同じ場合は同じ値を返します。どちらかの値がNaNの場合はNaNを返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。a
- 引数。b
- 別の引数。a
とb
のどちらか小さい方。public static double min(double a, double b)
double
値のうち小さいほうを返します。つまり、結果は負の無限大に近いほうの値となります。引数の値が同じ場合は同じ値を返します。どちらかの値がNaNの場合はNaNを返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。a
- 引数。b
- 別の引数。a
とb
のどちらか小さい方。public static double ulp(double d)
double
値のulp(最終桁単位)は、この浮動小数点値と、絶対値で次に大きいdouble
値との間の正の距離です。xがNaNでない場合は、ulp(-x)== ulp(x)
となります。
特例として:
Double.MIN_VALUE
になります。
Double.MAX_VALUE
の場合、結果は2971に等しくなります。
d
- ulpが返される浮動小数点値public static float ulp(float f)
float
値のulp(最終桁単位)は、この浮動小数点値と、絶対値で次に大きいfloat
値との間の正の距離です。xがNaNでない場合は、ulp(-x)== ulp(x)
となります。
特例として:
Float.MIN_VALUE
になります。
Float.MAX_VALUE
の場合、結果は2104に等しくなります。
f
- ulpが返される浮動小数点値public static double signum(double d)
特例として:
d
- 符号が返される浮動小数点値public static float signum(float f)
特例として:
f
- 符号が返される浮動小数点値public static double sinh(double x)
double
値の双曲線正弦を返します。xの双曲線正弦は、(ex - e-x)/2 (eはオイラー数)として定義されます。
特例として:
計算結果は、正確な結果の2.5 ulp以内である必要があります。
x
- 双曲線正弦が返される数字。x
の双曲線正弦。public static double cosh(double x)
double
値の双曲線余弦を返します。xの双曲線余弦は、(ex + e-x)/2 (eはオイラー数)として定義されます。
特例として:
1.0
になります。
計算結果は、正確な結果の2.5 ulp以内である必要があります。
x
- 双曲線余弦が返される数字。x
の双曲線余弦。public static double tanh(double x)
double
値の双曲線正接を返します。xの双曲線正接は、(ex - e-x)/(ex + e-x)つまりsinh(x)/cosh(x)として定義されます。正確なtanhの絶対値は常に1未満です。
特例として:
+1.0
になります。
-1.0
になります。
計算結果は、正確な結果の2.5 ulp以内である必要があります。有限入力のtanh
の結果は、1以下の絶対値を持たなければいけません。±1の制限値のulpの1/2以内である場合、正しく符号が付けられた±1.0
が返されます。
x
- 双曲線正接が返される数字。x
の双曲線正接。public static double hypot(double x, double y)
特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。1つのパラメータが一定の場合、結果はもう一方のパラメータで半単調なものに限ります。
x
- 値y
- 値public static double expm1(double x)
expm1(x)
+ 1の正確な合計はexp(x)
に比べ、exの真の結果にかなり近くなります。
特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。有限入力のexpm1
の結果は、-1.0
以上である必要があります。ex
- 1の正確な結果が制限値1の1/2 ulp以内である場合、-1.0
が返されます。
x
- ex
-1の計算時にeに適用する指数。x
- 1。public static double log1p(double x)
x
の値が小さい場合、log1p(x)
の結果は、log(1.0+x)
の浮動小数点評価よりもln(1+x
)の真の結果にかなり近くなります。
特例として:
計算結果は、正確な結果の1 ulp以内である必要があります。結果は半単調なものに限ります。
x
- 値x
+ 1)(x
+ 1の自然対数)public static double copySign(double magnitude, double sign)
StrictMath.copySign
メソッドとは異なり、このメソッドは、正の値として扱われるためにNaN sign
引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。magnitude
- 結果の絶対値を提供するパラメータsign
- 結果の符号を提供するパラメータmagnitude
の絶対値とsign
の符号を持つ値。public static float copySign(float magnitude, float sign)
StrictMath.copySign
メソッドとは異なり、このメソッドは、正の値として扱われるためにNaN sign
引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。magnitude
- 結果の絶対値を提供するパラメータsign
- 結果の符号を提供するパラメータmagnitude
の絶対値とsign
の符号を持つ値。public static int getExponent(float f)
float
の表現で使用されている、バイアスなしの指数を返します。特例として:
Float.MAX_EXPONENT
+1になります。
Float.MIN_EXPONENT
-1になります。
f
- float
値public static int getExponent(double d)
double
の表現で使用されている、バイアスなしの指数を返します。特例として:
Double.MAX_EXPONENT
+1になります。
Double.MIN_EXPONENT
-1になります。
d
- double
値public static double nextAfter(double start, double direction)
特例として:
direction
が変更されずに返されます。
start
が±Double.MIN_VALUE
であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つゼロが返されます。
start
が無限大であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つDouble.MAX_VALUE
が返されます。
start
が±Double.MAX_VALUE
に等しく、direction
の値が、結果の絶対値をより大きくすべきであることを示していた場合、start
と同じ符号を持つ無限大が返されます。
start
- 開始浮動小数点値direction
- start
の近傍、start
のどちらを返すべきかを示す値direction
の方向でstart
の近傍にある浮動小数点数。public static float nextAfter(float start, double direction)
特例として:
direction
に等しい値が返されます。
start
が±Float.MIN_VALUE
であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つゼロが返されます。
start
が無限大であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つFloat.MAX_VALUE
が返されます。
start
が±Float.MAX_VALUE
に等しく、direction
の値が、結果の絶対値をより大きくすべきであることを示していた場合、start
と同じ符号を持つ無限大が返されます。
start
- 開始浮動小数点値direction
- start
の近傍、start
のどちらを返すべきかを示す値direction
の方向でstart
の近傍にある浮動小数点数。public static double nextUp(double d)
d
に隣接する浮動小数点値を返します。このメソッドは意味的にはnextAfter(d, Double.POSITIVE_INFINITY)
と等価ですが、nextUp
の実装は対応するnextAfter
呼び出しよりも、高速で動作する可能性があります。
特例として:
Double.MIN_VALUE
になります
d
- 開始浮動小数点値public static float nextUp(float f)
f
に隣接する浮動小数点値を返します。このメソッドは意味的にはnextAfter(f, Float.POSITIVE_INFINITY)
と等価ですが、nextUp
の実装は対応するnextAfter
呼び出しよりも、高速で動作する可能性があります。
特例として:
Float.MIN_VALUE
になります
f
- 開始浮動小数点値public static double nextDown(double d)
d
に隣接する浮動小数点値を返します。このメソッドは意味的にはnextAfter(d, Double.NEGATIVE_INFINITY)
と同等ですが、nextDown
の実装はそれに対応するnextAfter
呼出しよりも、高速で動作する可能性があります。
特例として:
-Double.MIN_VALUE
になります
d
- 開始浮動小数点値public static float nextDown(float f)
f
に隣接する浮動小数点値を返します。このメソッドは意味的にはnextAfter(f, Float.NEGATIVE_INFINITY)
と同等ですが、nextDown
の実装はそれに対応するnextAfter
呼出しよりも、高速で動作する可能性があります。
特例として:
-Float.MIN_VALUE
になります
f
- 開始浮動小数点値public static double scalb(double d, int scaleFactor)
d
×2scaleFactor
を丸めて返します。浮動小数点値セットについては、『Java言語仕様』を参照してください。結果の指数がDouble.MIN_EXPONENT
とDouble.MAX_EXPONENT
の間である場合、答えは正確に計算されます。結果の指数がDouble.MAX_EXPONENT
より大きくなる場合、無限大が返されます。結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)
が非正規の場合、scalb(scalb(x, n), -n)
がxと等しくならない可能性があります。結果がNaN以外の場合、その結果はd
と同じ符号を持ちます。
特例として:
d
- 2の累乗によってスケーリングされる数。scaleFactor
- d
をスケーリングするときに使用される2の累乗d
× 2scaleFactor
public static float scalb(float f, int scaleFactor)
f
×2scaleFactor
を丸めて返します。浮動小数点値セットについては、『Java言語仕様』を参照してください。結果の指数がFloat.MIN_EXPONENT
とFloat.MAX_EXPONENT
の間である場合、答えは正確に計算されます。結果の指数がFloat.MAX_EXPONENT
より大きくなる場合、無限大が返されます。結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)
が非正規の場合、scalb(scalb(x, n), -n)
がxと等しくならない可能性があります。結果がNaN以外の場合、その結果はf
と同じ符号を持ちます。
特例として:
f
- 2の累乗によってスケーリングされる数。scaleFactor
- f
をスケーリングするときに使用される2の累乗f
× 2scaleFactor
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.