public final class StrictMath extends Object
StrictMathクラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
Javaプログラムの移植性を保つために、このパッケージにある一部の数値関数の定義は、既存のアルゴリズムと同一の計算結果を出すことが求められています。 こうしたアルゴリズムは、有名なネットワーク・ライブラリであるnetlibから「Freely Distributable Math Library」(fdlibm)パッケージとして入手可能です。 これらのアルゴリズムはCプログラミング言語で記述されており、すべての浮動小数点演算がJavaの浮動小数点演算ルールに従って実行されるものと見なされます。
Javaの数学ライブラリはfdlibmのバージョン5.3を基に定義されています。 fdlibmで複数の定義が与えられている関数(たとえばacos)については、IEEE 754コア関数のバージョンを使用してください(ファイル名がeで始まるファイルの中にある)。 fdlibmセマンティックスを必要とするメソッドは、sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1、およびlog1pです。
このプラットフォームでは、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 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 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 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)
a - ラジアンで表した角度。public static double cos(double a)
a - ラジアンで表した角度。public static double tan(double a)
a - ラジアンで表した角度。public static double asin(double a)
a - この値の逆正弦(アーク・サイン)が返される。public static double acos(double a)
a - この値の逆余弦(アーク・コサイン)が返される。public static double atan(double a)
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値で累乗した値を返します。 特例として:
a - eの累乗で使用する指数。a。ここで、eは自然対数の底。public static double log(double a)
double値の自然対数(底はe)を返します。 特例として:
a - 値a (aの自然対数)。public static double log10(double a)
double値の10を底とする対数を返します。 特例として:
a - 値aの10を底とする対数。public static double sqrt(double a)
double値の正しく丸めた正の平方根を返します。 特例として:
double値が返されます。a - 値。aの正の平方根。public static double cbrt(double a)
double値の立方根を返します。 正の有限値xの場合、cbrt(-x)== -cbrt(x)。つまり、負の値の立方根は、値の絶対値の立方根を負にしたものです。 特例として:
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値を返します。 特例として:
StrictMath.ceil(x)の値は-StrictMath.floor(-x)とまったく同じです。a - 値。public static double floor(double a)
double値を返します。 特例として:
a - 値。public static double rint(double a)
double値を返します。 2つのdouble値の整数が引数の値と同程度に近似している場合、結果は偶数の整数値になります。 特例として:
a - 値。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値になります。y - 縦座標x - 横座標public static double pow(double a,
double b)
double値として正確に表される場合は1番目の引数を2番目の引数で累乗した計算値とまったく同じ結果になります。(上記の説明においては、ceilメソッドによる固定小数点、または同じことですが、floorメソッドによる固定小数点の場合に限り、浮動小数点値は整数として考えます。 そのメソッドを適用した結果と同じ場合に限り、値は引数が1つのメソッドの固定小数点となります。)
a - 基数。b - 指数。abpublic 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_VALUEpublic 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_VALUEpublic 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をオーバーフローする場合Math.addExact(int,int)public static long addExact(long x,
long y)
longをオーバーフローする場合は例外をスローします。x - 最初の値y - 2番目の値ArithmeticException - 結果がlongをオーバーフローする場合Math.addExact(long,long)public static int subtractExact(int x,
int y)
intをオーバーフローした場合は例外をスローします。x - 最初の値y - 最初の値から減算する2番目の値ArithmeticException - 結果がintをオーバーフローする場合Math.subtractExact(int,int)public static long subtractExact(long x,
long y)
longをオーバーフローした場合は例外をスローします。x - 最初の値y - 最初の値から減算する2番目の値ArithmeticException - 結果がlongをオーバーフローする場合Math.subtractExact(long,long)public static int multiplyExact(int x,
int y)
intをオーバーフローした場合は例外をスローします。x - 最初の値y - 2番目の値ArithmeticException - 結果がintをオーバーフローする場合Math.multiplyExact(int,int)public static long multiplyExact(long x,
long y)
longをオーバーフローした場合は例外をスローします。x - 最初の値y - 2番目の値ArithmeticException - 結果がlongをオーバーフローする場合Math.multiplyExact(long,long)public static int toIntExact(long value)
long引数の値を返します。その値がintに収まらない場合は例外をスローします。value - long値ArithmeticException - argumentがintをオーバーフローする場合Math.toIntExact(long)public static int floorDiv(int x,
int y)
int値を返します。 特殊な場合が1つあります。被除数がInteger.MIN_VALUEで、除数が-1である場合、整数型オーバーフローが発生して、結果はInteger.MIN_VALUEに等しくなります。
例および整数除算の/演算子との比較については、Math.floorDivを参照してください。
x - 被除数y - 除数int値。ArithmeticException - 除数yがゼロである場合Math.floorDiv(int, int), Math.floor(double)public static long floorDiv(long x,
long y)
long値を返します。 特殊な場合が1つあります。被除数がLong.MIN_VALUEで、除数が-1である場合、整数型オーバーフローが発生して、結果はLong.MIN_VALUEに等しくなります。
例および整数除算の/演算子との比較については、Math.floorDivを参照してください。
x - 被除数y - 除数long値。ArithmeticException - 除数yがゼロである場合Math.floorDiv(long, long), Math.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
例および%演算子との比較については、Math.floorModを参照してください。
x - 被除数y - 除数x - (floorDiv(x, y) * y)ArithmeticException - 除数yがゼロである場合Math.floorMod(int, int), 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
例および%演算子との比較については、Math.floorModを参照してください。
x - 被除数y - 除数x - (floorDiv(x, y) * y)ArithmeticException - 除数yがゼロである場合Math.floorMod(long, long), 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)
a - 引数。b - 別の引数。aとbのどちらか大きい方。public static long max(long a,
long b)
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)
a - 引数。b - 別の引数。aとbのどちらか小さい方。public static long min(long a,
long b)
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はオイラー数)として定義されます。
特例として:
x - 双曲線正弦が返される数字。xの双曲線正弦。public static double cosh(double x)
double値の双曲線余弦を返します。 xの双曲線余弦は、(ex + e-x)/2 (eはオイラー数)として定義されます。
特例として:
1.0になります。
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になります。
x - 双曲線正接が返される数字。xの双曲線正接。public static double hypot(double x,
double y)
特例として:
x - 値y - 値public static double expm1(double x)
expm1(x) + 1の正確な合計はexp(x)に比べ、exの真の結果にかなり近くなります。
特例として:
x - ex -1の計算時にeに適用する指数。x - 1。public static double log1p(double x)
xの値が小さい場合、log1p(x)の結果は、log(1.0+x)の浮動小数点評価よりもln(1+x)の真の結果にかなり近くなります。
特例として:
x - 値x + 1)(x + 1の自然対数)public static double copySign(double magnitude,
double sign)
sign引数は常に正であるかのように扱われます。 magnitude - 結果の絶対値を提供するパラメータsign - 結果の符号を提供するパラメータmagnitudeの絶対値とsignの符号を持つ値。public static float copySign(float magnitude,
float sign)
sign引数は常に正であるかのように扱われます。 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 × 2scaleFactorpublic 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。