鴻蒙OS StrictMath

2022-05-21 17:52 更新

StrictMath

java.lang.Object

|---java.lang.StrictMath

public final class StrictMath
extends Object

StrictMath 類包含執(zhí)行基本數(shù)值運(yùn)算的方法,例如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。

為幫助確保 Java 程序的可移植性,此包中某些數(shù)值函數(shù)的定義要求它們產(chǎn)生與某些已發(fā)布算法相同的結(jié)果。這些算法可從著名的網(wǎng)絡(luò)庫 netlib 中以包“Freely Distributable Math Library”fdlibm 的形式獲得。這些算法是用 C 編程語言編寫的,因此可以理解為按照 Java 浮點(diǎn)運(yùn)算規(guī)則執(zhí)行所有浮點(diǎn)運(yùn)算。

Java 數(shù)學(xué)庫是針對 fdlibm 5.3 版定義的。如果 fdlibm 為函數(shù)(例如 acos)提供了多個定義,請使用“IEEE 754 核心函數(shù)”版本(駐留在名稱以字母 e 開頭的文件中)。需要 fdlibm 語義的方法有 sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1 和 log1p。

該平臺使用帶有 int 和 long 原始類型的帶符號二進(jìn)制補(bǔ)碼整數(shù)算術(shù)。開發(fā)人員應(yīng)選擇原始類型以確保算術(shù)運(yùn)算始終產(chǎn)生正確的結(jié)果,這在某些情況下意味著運(yùn)算不會溢出計(jì)算值的范圍。最佳實(shí)踐是選擇原始類型和算法以避免溢出。在大小為 int 或 long 且需要檢測溢出錯誤的情況下,方法 addExact、subtractExact、multiplyExact 和 toIntExact 在結(jié)果溢出時拋出 ArithmeticException。對于其他算術(shù)運(yùn)算,例如除法、絕對值、遞增、遞減和求反,溢出僅發(fā)生在特定的最小值或最大值時,應(yīng)根據(jù)需要檢查最小值或最大值。

字段摘要

修飾符和類型 字段 描述
static double E 比任何其他值都更接近自然對數(shù)的底 e 的雙精度值。
static double PI 比任何其他值都更接近 pi 的 double 值,pi 是圓的周長與其直徑的比率。

方法總結(jié)

修飾符和類型 方法 描述
static double abs(double a) 返回雙精度值的絕對值。
static float abs(float a) 返回浮點(diǎn)值的絕對值。
static int abs(int a) 返回 int 值的絕對值。
static long abs(long a) 返回 long 值的絕對值。
static double acos(double a) 返回一個值的反余弦值; 返回的角度在 0.0 到 pi 的范圍內(nèi)。
static int addExact(int x, int y) 返回其參數(shù)的總和,如果結(jié)果溢出 int,則拋出異常。
static long addExact(long x, long y) 返回其參數(shù)的總和,如果結(jié)果溢出 long 則拋出異常。
static double asin(double a) 返回一個值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。
static double atan(double a) 返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。
static double atan2 x) 從直角坐標(biāo) (x, y) 到極坐標(biāo) (r, theta) 的轉(zhuǎn)換中返回角度 theta。
static double cbrt(double a) 返回雙精度值的立方根。
static double ceil(double a) 返回大于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最?。ㄗ罱咏?fù)無窮大)雙精度值。
static double copySign(double magnitude, double sign) 返回帶有第二個浮點(diǎn)參數(shù)符號的第一個浮點(diǎn)參數(shù)。
static float copySign(float magnitude, float sign) 返回帶有第二個浮點(diǎn)參數(shù)符號的第一個浮點(diǎn)參數(shù)。
static double cos(double a) 返回角度的三角余弦值。
static double cosh(double x) 返回 double 值的雙曲余弦值。
static double exp(double a) 返回歐拉數(shù) e 的雙精度次方。
static double expm1(double x) 返回 ex -1。
static double floor(double a) 返回小于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最大(最接近正無窮大)雙精度值。
static int floorDiv(int x, int y) 返回小于或等于代數(shù)商的最大(最接近正無窮大)int 值。
static long floorDiv(long x, long y) 返回小于或等于代數(shù)商的最大(最接近正無窮大)long 值。
static int floorMod(int x, int y) 返回 int 參數(shù)的底模。
static long floorMod(long x, long y) 返回 long 參數(shù)的底模。
static int getExponent(double d) 返回用于表示雙精度的無偏指數(shù)。
static int getExponent(float f) 返回浮點(diǎn)數(shù)表示中使用的無偏指數(shù)。
static double hypot(double x, double y) 返回 sqrt(x2 +y2) 沒有中間溢出或下溢。
static double IEEEremainder(double f1, double f2) 計(jì)算 IEEE 754 標(biāo)準(zhǔn)規(guī)定的兩個參數(shù)的余數(shù)運(yùn)算。
static double log(double a) 返回雙精度值的自然對數(shù)(以 e 為底)。
static double log10(double a) 返回雙精度值的以 10 為底的對數(shù)。
static double log1p(double x) 返回參數(shù)和 1 之和的自然對數(shù)。
static double max(double a, double b) 返回兩個雙精度值中的較大者。
static float max(float a, float b) 返回兩個浮點(diǎn)值中的較大者。
static int max(int a, int b) 返回兩個 int 值中的較大者。
static long max(long a, long b) 返回兩個 long 值中的較大者。
static double min(double a, double b) 返回兩個雙精度值中較小的一個。
static float min(float a, float b) 返回兩個浮點(diǎn)值中較小的一個。
static int min(int a, int b) 返回兩個 int 值中較小的一個。
static long min(long a, long b) 返回兩個 long 值中較小的一個。
static int multiplyExact(int x, int y) 返回參數(shù)的乘積,如果結(jié)果溢出 int,則拋出異常。
static long multiplyExact(long x, long y) 返回參數(shù)的乘積,如果結(jié)果溢出 long 則拋出異常。
static double nextAfter(double start, double direction) 返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點(diǎn)數(shù)。
static float nextAfter(float start, double direction) 返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點(diǎn)數(shù)。
static double nextDown(double d) 返回在負(fù)無窮方向上與 d 相鄰的浮點(diǎn)值。
static float nextDown(float f) 返回在負(fù)無窮方向上與 f 相鄰的浮點(diǎn)值。
static double nextUp(double d) 返回正無窮方向上與 d 相鄰的浮點(diǎn)值。
static float nextUp(float f) 返回在正無窮大方向上與 f 相鄰的浮點(diǎn)值。
static double pow(double a, double b) 返回第一個參數(shù)的第二個參數(shù)次冪的值。
static double random() 返回一個帶正號的雙精度值,大于或等于 0.0 且小于 1.0。
static double rint(double a) 返回與參數(shù)值最接近且等于數(shù)學(xué)整數(shù)的雙精度值。
static long round(double a) 返回最接近參數(shù)的長整數(shù),并舍入為正無窮大。
static int round(float a) 返回最接近參數(shù)的 int,并舍入為正無窮大。
static double scalb(double d, int scaleFactor) 返回四舍五入的 d × 2scaleFactor,就像通過單個正確舍入的浮點(diǎn)乘以雙精度值集的成員一樣。
static float scalb(float f, int scaleFactor) 返回 f × 2scaleFactor 舍入,就好像通過單個正確舍入的浮點(diǎn)乘以浮點(diǎn)值集的成員一樣。
static double signum(double d) 返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0,如果參數(shù)小于零,則為 -1.0。
static float signum(float f) 返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0f,如果參數(shù)小于零,則為 -1.0f。
static double sin(double a) 返回角度的三角正弦值。
static double sinh(double x) 返回 double 值的雙曲正弦值。
static double sqrt(double a) 返回雙精度值的正確舍入正平方根。
static int subtractExact(int x, int y) 返回參數(shù)的差異,如果結(jié)果溢出 int,則拋出異常。
static long subtractExact(long x, long y) 返回參數(shù)的差異,如果結(jié)果溢出 long 則拋出異常。
static double tan(double a) 返回角度的三角正切。
static double tanh(double x) 返回 double 值的雙曲正切值。
static double toDegrees(double angrad) 將以弧度測量的角度轉(zhuǎn)換為以度為單位測量的大致等效角度。
static int toIntExact(long value) 返回 long 參數(shù)的值; 如果值溢出 int,則拋出異常。
static double toRadians(double angdeg) 將以度為單位的角度轉(zhuǎn)換為以弧度為單位的大致等效角度。
static double ulp(double d) 返回參數(shù)的 ulp 的大小。
static float ulp(float f) 返回參數(shù)的 ulp 的大小。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段詳細(xì)信息

E

public static final double E

比任何其他值都更接近自然對數(shù)的底 e 的雙精度值。

PI

public static final double PI

比任何其他值都更接近 pi 的 double 值,pi 是圓的周長與其直徑的比率。

方法詳情

sin

public static double sin(double a)

返回角度的三角正弦值。 特別情況:

  • 如果參數(shù)為 NaN 或無窮大,則結(jié)果為 NaN。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個角度,以弧度為單位。

返回:

參數(shù)的正弦。

cos

public static double cos(double a)

返回角度的三角余弦值。 特別情況:

  • 如果參數(shù)為 NaN 或無窮大,則結(jié)果為 NaN。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個角度,以弧度為單位。

返回:

參數(shù)的余弦。

tan

public static double tan(double a)

返回角度的三角正切。 特別情況:

  • 如果參數(shù)為 NaN 或無窮大,則結(jié)果為 NaN。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個角度,以弧度為單位。

返回:

參數(shù)的切線。

asin

public static double asin(double a)

返回一個值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。 特別情況:

  • 如果參數(shù)為 NaN 或其絕對值大于 1,則結(jié)果為 NaN。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要返回其反正弦的值。

返回:

參數(shù)的反正弦。

acos

public static double acos(double a)

返回一個值的反余弦值; 返回的角度在 0.0 到 pi 的范圍內(nèi)。 特別情況:

  • 如果參數(shù)為 NaN 或其絕對值大于 1,則結(jié)果為 NaN。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要返回其反余弦值的值。

返回:

參數(shù)的反余弦。

atan

public static double atan(double a)

返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。 特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要返回其反正切的值。

返回:

參數(shù)的反正切。

toRadians

public static double toRadians(double angdeg)

將以度為單位的角度轉(zhuǎn)換為以弧度為單位的大致等效角度。 從度數(shù)到弧度的轉(zhuǎn)換通常是不精確的。

參數(shù):

參數(shù)名稱 參數(shù)描述
angdeg 一個角度,以度為單位

返回:

以弧度為單位的角度 angdeg 的測量值。

toDegrees

public static double toDegrees(double angrad)

將以弧度測量的角度轉(zhuǎn)換為以度為單位測量的大致等效角度。 從弧度到度數(shù)的轉(zhuǎn)換通常是不精確的; 用戶不應(yīng)期望 cos(toRadians(90.0)) 完全等于 0.0。

參數(shù):

參數(shù)名稱 參數(shù)描述
angrad 一個角度,以弧度為單位

返回:

以度為單位的角度 angrad 的測量值。

exp

public static double exp(double a)

返回歐拉數(shù) e 的雙精度次方。 特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)為負(fù)無窮大,則結(jié)果為正零。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 將 e 提高到的指數(shù)。

返回:

值 ea,其中 e 是自然對數(shù)的底。

log

public static double log(double a)

返回雙精度值的自然對數(shù)(以 e 為底)。 特別情況:

  • 如果參數(shù)為 NaN 或小于零,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為負(fù)無窮大。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

ln a 的值,a 的自然對數(shù)。

log10

public static double log10(double a)

返回雙精度值的以 10 為底的對數(shù)。 特別情況:

  • 如果參數(shù)為 NaN 或小于零,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為負(fù)無窮大。
  • 如果整數(shù) n 的參數(shù)等于 10n,則結(jié)果為 n。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

a 的以 10 為底的對數(shù)。

sqrt

public static double sqrt(double a)

返回雙精度值的正確舍入正平方根。 特別情況:

  • 如果參數(shù)為 NaN 或小于零,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)是正零或負(fù)零,則結(jié)果與參數(shù)相同。

否則,結(jié)果是最接近參數(shù)值的真正數(shù)學(xué)平方根的雙精度值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

a 的正平方根。

cbrt

public static double cbrt(double a)

返回雙精度值的立方根。 對于正有限 x,cbrt(-x) == -cbrt(x); 也就是說,負(fù)值的立方根是該值大小的立方根的負(fù)數(shù)。 特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是無限的,則結(jié)果是與參數(shù)相同符號的無窮大。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

a的立方根。

IEEEremainder

public static double IEEEremainder(double f1, double f2)

計(jì)算 IEEE 754 標(biāo)準(zhǔn)規(guī)定的兩個參數(shù)的余數(shù)運(yùn)算。 余數(shù)在數(shù)學(xué)上等于 f1 - f2 × n,其中 n 是最接近商 f1/f2 的精確數(shù)學(xué)值的數(shù)學(xué)整數(shù),如果兩個數(shù)學(xué)整數(shù)同樣接近 f1/f2,則 n 是整數(shù) 那是均勻的。 如果余數(shù)為零,則其符號與第一個參數(shù)的符號相同。 特別情況:

  • 如果任一參數(shù)為 NaN,或第一個參數(shù)為無窮大,或第二個參數(shù)為正零或負(fù)零,則結(jié)果為 NaN。
  • 如果第一個參數(shù)是有限的,而第二個參數(shù)是無限的,那么結(jié)果與第一個參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
f1 被除數(shù)
f2 除數(shù)

返回:

f1 除以 f2 的余數(shù)。

ceil

public static double ceil(double a)

返回大于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最?。ㄗ罱咏?fù)無窮大)雙精度值。 特別情況:

  • 如果參數(shù)值已經(jīng)等于數(shù)學(xué)整數(shù),則結(jié)果與參數(shù)相同。
  • 如果參數(shù)是 NaN 或無窮大或正零或負(fù)零,則結(jié)果與參數(shù)相同。
  • 如果參數(shù)值小于零但大于 -1.0,則結(jié)果為負(fù)零。

請注意,StrictMath.ceil(x) 的值正是 -StrictMath.floor(-x) 的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

大于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最小(最接近負(fù)無窮大)浮點(diǎn)值。

floor

public static double floor(double a)

返回小于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最大(最接近正無窮大)雙精度值。 特別情況:

  • 如果參數(shù)值已經(jīng)等于數(shù)學(xué)整數(shù),則結(jié)果與參數(shù)相同。
  • 如果參數(shù)是 NaN 或無窮大或正零或負(fù)零,則結(jié)果與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

小于或等于參數(shù)且等于數(shù)學(xué)整數(shù)的最大(最接近正無窮大)浮點(diǎn)值。

rint

public static double rint(double a)

返回與參數(shù)值最接近且等于數(shù)學(xué)整數(shù)的雙精度值。 如果兩個作為數(shù)學(xué)整數(shù)的雙精度值與參數(shù)的值同樣接近,則結(jié)果是偶數(shù)的整數(shù)值。 特別情況:

  • 如果參數(shù)值已經(jīng)等于數(shù)學(xué)整數(shù),則結(jié)果與參數(shù)相同。
  • 如果參數(shù)是 NaN 或無窮大或正零或負(fù)零,則結(jié)果與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個值

返回:

最接近等于數(shù)學(xué)整數(shù)的 a 的浮點(diǎn)值。

atan2

public static double atan2(double y, double x)

從直角坐標(biāo) (x, y) 到極坐標(biāo) (r, theta) 的轉(zhuǎn)換中返回角度 theta。此方法通過計(jì)算 -pi 到 pi 范圍內(nèi)的 y/x 的反正切來計(jì)算相位 theta。特別情況:

  • 如果任一參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果第一個參數(shù)為正零且第二個參數(shù)為正,或者第一個參數(shù)為正且有限且第二個參數(shù)為正無窮,則結(jié)果為正零。
  • 如果第一個參數(shù)為負(fù)零,第二個參數(shù)為正,或者第一個參數(shù)為負(fù)且有限,而第二個參數(shù)為正無窮,則結(jié)果為負(fù)零。
  • 如果第一個參數(shù)為正零且第二個參數(shù)為負(fù),或者第一個參數(shù)為正且有限且第二個參數(shù)為負(fù)無窮大,則結(jié)果是最接近 pi 的雙精度值。
  • 如果第一個參數(shù)是負(fù)零,第二個參數(shù)是負(fù)數(shù),或者第一個參數(shù)是負(fù)數(shù)和有限,第二個參數(shù)是負(fù)無窮大,那么結(jié)果是最接近 -pi 的雙精度值。
  • 如果第一個參數(shù)為正,第二個參數(shù)為正零或負(fù)零,或者第一個參數(shù)為正無窮大,第二個參數(shù)為有限,則結(jié)果是最接近 pi/2 的雙精度值。
  • 如果第一個參數(shù)是負(fù)數(shù),第二個參數(shù)是正零或負(fù)零,或者第一個參數(shù)是負(fù)無窮大,第二個參數(shù)是有限的,那么結(jié)果是最接近 -pi/2 的雙精度值。
  • 如果兩個參數(shù)都是正無窮大,則結(jié)果是最接近 pi/4 的雙精度值。
  • 如果第一個參數(shù)是正無窮大,第二個參數(shù)是負(fù)無窮大,則結(jié)果是最接近 3*pi/4 的雙精度值。
  • 如果第一個參數(shù)是負(fù)無窮大,第二個參數(shù)是正無窮大,那么結(jié)果是最接近 -pi/4 的雙精度值。
  • 如果兩個參數(shù)都是負(fù)無窮大,那么結(jié)果是最接近 -3*pi/4 的雙精度值。

參數(shù):

參數(shù)名稱 參數(shù)描述
y 縱坐標(biāo)
x 橫坐標(biāo)

返回:

極坐標(biāo)中點(diǎn) (r, theta) 的 theta 分量,對應(yīng)于笛卡爾坐標(biāo)中的點(diǎn) (x, y)。

pow

public static double pow(double a, double b)

返回第一個參數(shù)的第二個參數(shù)次冪的值。 特別情況:

  • 如果第二個參數(shù)是正零或負(fù)零,則結(jié)果為 1.0。

  • 如果第二個參數(shù)為 1.0,則結(jié)果與第一個參數(shù)相同。

  • 如果第二個參數(shù)是 NaN,那么結(jié)果是 NaN。

  • 如果第一個參數(shù)為 NaN,第二個參數(shù)為非零,則結(jié)果為 NaN。

  • 如果

  • 第一個參數(shù)的絕對值大于 1,第二個參數(shù)為正無窮大,或
  • 第一個參數(shù)的絕對值小于1,第二個參數(shù)為負(fù)無窮大,則結(jié)果為正無窮大。

  • 如果

  • 第一個參數(shù)的絕對值大于 1,第二個參數(shù)為負(fù)無窮大,或
  • 第一個參數(shù)的絕對值小于 1,第二個參數(shù)為正無窮大,則結(jié)果為正零。

  • 如果第一個參數(shù)的絕對值等于 1,而第二個參數(shù)是無限的,則結(jié)果為 NaN。

  • 如果

  • 第一個參數(shù)為正零,第二個參數(shù)大于零,或
  • 第一個參數(shù)為正無窮大,第二個參數(shù)小于零,則結(jié)果為正零。

  • 如果

  • 第一個參數(shù)為正零,第二個參數(shù)小于零,或
  • 第一個參數(shù)為正無窮大,第二個參數(shù)大于零,則結(jié)果為正無窮大。

  • 如果

  • 第一個參數(shù)為負(fù)零,第二個參數(shù)大于零但不是有限奇數(shù),或
  • 第一個參數(shù)為負(fù)無窮大,第二個參數(shù)小于零但不是有限奇數(shù),則結(jié)果為正零。

  • 如果

  • 第一個參數(shù)是負(fù)零,第二個參數(shù)是一個正有限奇整數(shù),或者
  • 第一個參數(shù)是負(fù)無窮大,第二個參數(shù)是一個負(fù)有限奇整數(shù),那么結(jié)果是負(fù)零。

  • 如果

  • 第一個參數(shù)為負(fù)零,第二個參數(shù)小于零但不是有限奇數(shù),或
  • 第一個參數(shù)為負(fù)無窮大,第二個參數(shù)大于零但不是有限奇數(shù),則結(jié)果為正無窮大。

  • 如果

  • 第一個參數(shù)是負(fù)零,第二個參數(shù)是一個負(fù)有限奇整數(shù),或者
  • 第一個參數(shù)是負(fù)無窮大,第二個參數(shù)是一個正有限奇整數(shù),那么結(jié)果是負(fù)無窮大。

  • 如果第一個參數(shù)是有限的并且小于零

  • 如果第二個參數(shù)是有限偶整數(shù),則結(jié)果等于將第一個參數(shù)的絕對值提高到第二個參數(shù)的冪的結(jié)果
  • 如果第二個參數(shù)是有限奇整數(shù),則結(jié)果等于將第一個參數(shù)的絕對值提高到第二個參數(shù)的冪的結(jié)果的負(fù)數(shù)
  • 如果第二個參數(shù)是有限的而不是整數(shù),則結(jié)果為 NaN。

  • 如果兩個參數(shù)都是整數(shù),則結(jié)果完全等于將第一個參數(shù)提升到第二個參數(shù)的冪的數(shù)學(xué)結(jié)果,如果該結(jié)果實(shí)際上可以精確地表示為雙精度值。

(在前面的描述中,浮點(diǎn)值被認(rèn)為是整數(shù)當(dāng)且僅當(dāng)它是有限的并且是方法 ceil 的不動點(diǎn),或者等效地,方法層的不動點(diǎn)。一個值是一個不動點(diǎn) 當(dāng)且僅當(dāng)將方法應(yīng)用于值的結(jié)果等于該值時,才屬于單參數(shù)方法。)

參數(shù):

參數(shù)名稱 參數(shù)描述
a
b 指數(shù)

返回:

值 ab。

round

public static int round(float a)

返回最接近參數(shù)的 int,并舍入為正無窮大。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 0。
  • 如果參數(shù)為負(fù)無窮大或任何小于或等于 Integer.MIN_VALUE 的值,則結(jié)果等于 Integer.MIN_VALUE 的值。
  • 如果參數(shù)為正無窮大或任何大于或等于 Integer.MAX_VALUE 的值,則結(jié)果等于 Integer.MAX_VALUE 的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要舍入為整數(shù)的浮點(diǎn)值。

返回:

參數(shù)的值四舍五入到最接近的 int 值。

round

public static long round(double a)

返回最接近參數(shù)的長整數(shù),并舍入為正無窮大。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 0。
  • 如果參數(shù)為負(fù)無窮大或任何小于或等于 Long.MIN_VALUE 的值,則結(jié)果等于 Long.MIN_VALUE 的值。
  • 如果參數(shù)為正無窮大或任何大于或等于 Long.MAX_VALUE 的值,則結(jié)果等于 Long.MAX_VALUE 的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要舍入為 long 的浮點(diǎn)值。

返回:

參數(shù)的值四舍五入到最接近的 long 值。

random

public static double random()

返回一個帶正號的雙精度值,大于或等于 0.0 且小于 1.0。 返回值是偽隨機(jī)選擇的,從該范圍(近似)均勻分布。

當(dāng)這個方法第一次被調(diào)用時,它會創(chuàng)建一個新的偽隨機(jī)數(shù)生成器,就像通過表達(dá)式一樣

new java.util.Random()

這個新的偽隨機(jī)數(shù)生成器隨后用于對該方法的所有調(diào)用,并且不會在其他任何地方使用。

此方法已正確同步,以允許多個線程正確使用。 但是,如果許多線程需要以很高的速率生成偽隨機(jī)數(shù),則可能會減少每個線程對擁有自己的偽隨機(jī)數(shù)生成器的爭用。

返回:

大于或等于 0.0 且小于 1.0 的偽隨機(jī) double。

addExact

public static int addExact(int x, int y)

返回其參數(shù)的總和,如果結(jié)果溢出 int,則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 第一個值
y 第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個 int

addExact

public static long addExact(long x, long y)

Returns the sum of its arguments, throwing an exception if the result overflows a long.

Parameters:

參數(shù)名稱 參數(shù)描述
x 第一個值
y 第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個long

subtractExact

public static int subtractExact(int x, int y)

返回參數(shù)的差異,如果結(jié)果溢出 int,則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 第一個值
y 從第一個值中減去的第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個 int

subtractExact

public static long subtractExact(long x, long y)

返回參數(shù)的差異,如果結(jié)果溢出 long 則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 第一個值
y 從第一個值中減去的第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個long

multiplyExact

public static int multiplyExact(int x, int y)

返回參數(shù)的乘積,如果結(jié)果溢出 int,則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 第一個值
y 第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個 int

multiplyExact

public static long multiplyExact(long x, long y)

返回參數(shù)的乘積,如果結(jié)果溢出 long 則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 第一個值
y 第二個值

返回:

結(jié)果

Throws:

Throw名稱 Throw描述
ArithmeticException 如果結(jié)果溢出一個long

toIntExact

public static int toIntExact(long value)

返回long參數(shù)的值; 如果值溢出 int,則拋出異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
value long值

返回:

作為 int 的參數(shù)

Throws:

Throw名稱 Throw描述
ArithmeticException 如果參數(shù)溢出一個 int

floorDiv

public static int floorDiv(int x, int y)

返回小于或等于代數(shù)商的最大(最接近正無窮大)int 值。 有一種特殊情況,如果被除數(shù)為 Integer#MIN_VALUE,除數(shù)為 -1,則發(fā)生整數(shù)溢出,結(jié)果等于 Integer.MIN_VALUE。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 被除數(shù)
y 除數(shù)

返回:

小于或等于代數(shù)商的最大(最接近正無窮大)int 值。

Throws:

Throw名稱 Throw描述
ArithmeticException 如果除數(shù) y 為零

floorDiv

public static long floorDiv(long x, long y)

返回小于或等于代數(shù)商的最大(最接近正無窮大)long 值。 有一種特殊情況,如果被除數(shù)是 Long#MIN_VALUE 而除數(shù)是 -1,則發(fā)生整數(shù)溢出,結(jié)果等于 Long.MIN_VALUE。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 被除數(shù)
y 除數(shù)

返回:

小于或等于代數(shù)商的最大(最接近正無窮大)long 值。

Throws:

Throw名稱 Throw描述
ArithmeticException 如果除數(shù) y 為零

floorMod

public static int floorMod(int x, int y)

返回 int 參數(shù)的底模。

底模為 x - (floorDiv(x, y) * y),與除數(shù) y 具有相同的符號,并且在 -abs(y) < r < +abs(y) 的范圍內(nèi)。

floorDiv 和 floorMod 之間的關(guān)系是這樣的:

  • floorDiv(x, y) * y + floorMod(x, y) == x

有關(guān)示例以及與 % 運(yùn)算符的比較,請參見 Math#floorMod(int, int)。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 被除數(shù)
y 除數(shù)

返回:

底模 x - (floorDiv(x, y) * y)

Throws:

Throw名稱 Throw描述
ArithmeticException 如果除數(shù) y 為零

floorMod

public static long floorMod(long x, long y)

返回長參數(shù)的底模。

底模為 x - (floorDiv(x, y) * y),與除數(shù) y 具有相同的符號,并且在 -abs(y) < r < +abs(y) 的范圍內(nèi)。

floorDiv 和 floorMod 之間的關(guān)系是這樣的:

  • floorDiv(x, y) * y + floorMod(x, y) == x

參數(shù):

參數(shù)名稱 參數(shù)描述
x 被除數(shù)
y 除數(shù)

返回:

底模 x - (floorDiv(x, y) * y)

Throws:

Throw名稱 Throw描述
ArithmeticException 如果除數(shù) y 為零

abs

public static int abs(int a)

返回 int 值的絕對值。 如果參數(shù)不是負(fù)數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。

請注意,如果參數(shù)等于 Integer#MIN_VALUE 的值,即最負(fù)的可表示 int 值,則結(jié)果是相同的值,即為負(fù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要確定其絕對值的參數(shù)。

返回:

參數(shù)的絕對值。

abs

public static long abs(long a)

返回長值的絕對值。 如果參數(shù)不是負(fù)數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。

請注意,如果參數(shù)等于 Long#MIN_VALUE 的值(可表示的最負(fù)的 long 值),則結(jié)果是相同的值,即為負(fù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要確定其絕對值的參數(shù)。

返回:

參數(shù)的絕對值。

abs

public static float abs(float a)

返回浮點(diǎn)值的絕對值。 如果參數(shù)不是負(fù)數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。 特別情況:

  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為正零。
  • 如果參數(shù)是無限的,則結(jié)果是正無窮大。
  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。

換句話說,結(jié)果與表達(dá)式的值相同:

Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要確定其絕對值的參數(shù)

返回:

參數(shù)的絕對值。

abs

public static double abs(double a)

返回雙精度值的絕對值。 如果參數(shù)不是負(fù)數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。 特別情況:

  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為正零。
  • 如果參數(shù)是無限的,則結(jié)果是正無窮大。
  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。

換句話說,結(jié)果與表達(dá)式的值相同:

Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)

參數(shù):

參數(shù)名稱 參數(shù)描述
a 要確定其絕對值的參數(shù)

返回:

參數(shù)的絕對值。

max

public static int max(int a, int b)

返回兩個 int 值中的較大者。 也就是說,結(jié)果是更接近 Integer#MAX_VALUE 值的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中的較大者。

max

public static long max(long a, long b)

返回兩個 long 值中的較大者。 也就是說,結(jié)果是參數(shù)更接近 Long#MAX_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中的較大者。

max

public static float max(float a, float b)

返回兩個浮點(diǎn)值中的較大者。 也就是說,結(jié)果是更接近正無窮大的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運(yùn)算符不同,此方法認(rèn)為負(fù)零嚴(yán)格小于正零。 如果一個參數(shù)為正零而另一個為負(fù)零,則結(jié)果為正零。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中的較大者。

max

public static double max(double a, double b)

返回兩個雙精度值中的較大者。 也就是說,結(jié)果是更接近正無窮大的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運(yùn)算符不同,此方法認(rèn)為負(fù)零嚴(yán)格小于正零。 如果一個參數(shù)為正零而另一個為負(fù)零,則結(jié)果為正零。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中的較大者。

min

public static int min(int a, int b)

返回兩個 int 值中較小的一個。 也就是說,參數(shù)的結(jié)果更接近 Integer#MIN_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中較小的一個。

min

public static long min(long a, long b)

返回兩個 long 值中較小的一個。 也就是說,結(jié)果是參數(shù)更接近 Long#MIN_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中較小的一個。

min

public static float min(float a, float b)

返回兩個浮點(diǎn)值中較小的一個。 也就是說,結(jié)果是更接近負(fù)無窮大的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運(yùn)算符不同,此方法認(rèn)為負(fù)零嚴(yán)格小于正零。 如果一個參數(shù)為正零而另一個為負(fù)零,則結(jié)果為負(fù)零。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中較小的一個。

min

public static double min(double a, double b)

返回兩個雙精度值中較小的一個。 也就是說,結(jié)果是更接近負(fù)無窮大的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運(yùn)算符不同,此方法認(rèn)為負(fù)零嚴(yán)格小于正零。 如果一個參數(shù)為正零而另一個為負(fù)零,則結(jié)果為負(fù)零。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個參數(shù)
b 另一個參數(shù)

返回:

a 和 b 中較小的一個。

ulp

public static double ulp(double d)

返回參數(shù)的 ulp 的大小。 double 值的最后一個單位 ulp 是該浮點(diǎn)值與幅度下一個更大的 double 值之間的正距離。 請注意,對于非 NaN x,ulp(-x) == ulp(x)。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮或負(fù)無窮,則結(jié)果是正無窮。
  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為 Double.MIN_VALUE。
  • 如果參數(shù)為 ±Double.MAX_VALUE,則結(jié)果等于 2971。

參數(shù):

參數(shù)名稱 參數(shù)描述
d 要返回 ulp 的浮點(diǎn)值

返回:

參數(shù)的 ulp 大小

ulp

public static float ulp(float f)

返回參數(shù)的 ulp 的大小。 浮點(diǎn)值的最后一個單位 ulp 是該浮點(diǎn)值與幅度下一個更大的浮點(diǎn)值之間的正距離。 請注意,對于非 NaN x,ulp(-x) == ulp(x)。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮或負(fù)無窮,則結(jié)果是正無窮。
  • 如果參數(shù)為正零或負(fù)零,則結(jié)果為 Float.MIN_VALUE。
  • 如果參數(shù)為 ±Float.MAX_VALUE,則結(jié)果等于 2104。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要返回 ulp 的浮點(diǎn)值

返回:

參數(shù)的 ulp 大小

signum

public static double signum(double d)

返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0,如果參數(shù)小于零,則為 -1.0。

特別案例:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正零或負(fù)零,則結(jié)果與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
d 要返回其符號的浮點(diǎn)值

返回:

參數(shù)的符號函數(shù)

signum

public static float signum(float f)

返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0f,如果參數(shù)小于零,則為 -1.0f。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正零或負(fù)零,則結(jié)果與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要返回其符號的浮點(diǎn)值

返回:

參數(shù)的符號函數(shù)

sinh

public static double sinh(double x)

返回 double 值的雙曲正弦值。 x 的雙曲正弦定義為 (ex - e-x)/2,其中 e 是 Math#E。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是無限的,則結(jié)果是與參數(shù)相同符號的無窮大。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 要返回其雙曲正弦的數(shù)字。

返回:

x 的雙曲正弦。

cosh

public static double cosh(double x)

返回 double 值的雙曲余弦值。 x 的雙曲余弦定義為 (ex + e-x)/2,其中 e 是 Math#E。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是無限的,那么結(jié)果是正無窮大。
  • 如果參數(shù)為零,則結(jié)果為 1.0。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 要返回其雙曲余弦的數(shù)字。

返回:

x 的雙曲余弦。

tanh

public static double tanh(double x)

返回 double 值的雙曲正切值。 x 的雙曲正切定義為 (ex - e-x)/(ex + e-x),換言之,Math#sinh/Math#cosh。 請注意,精確 tanh 的絕對值始終小于 1。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。
  • 如果參數(shù)為正無窮大,則結(jié)果為 +1.0。
  • 如果參數(shù)為負(fù)無窮大,則結(jié)果為 -1.0。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 要返回其雙曲正切的數(shù)字。

返回:

x 的雙曲正切。

hypot

public static double hypot(double x, double y)

返回 sqrt(x2 +y2) 沒有中間溢出或下溢。

特別情況:

  • 如果任一參數(shù)是無限的,則結(jié)果是正無窮大。
  • 如果任一參數(shù)為 NaN 且兩個參數(shù)都不是無限的,則結(jié)果為 NaN。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 一個值
y 一個值

返回:

sqrt(x2 +y2) 沒有中間溢出或下溢

expm1

public static double expm1(double x)

返回前 -1。 請注意,對于接近 0 的 x 值,expm1(x) + 1 的精確總和比 exp(x) 更接近 ex 的真實(shí)結(jié)果。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)為負(fù)無窮大,則結(jié)果為 -1.0。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 在計(jì)算 ex -1 時將 e 提高到的指數(shù)。

返回:

值 ex - 1。

log1p

public static double log1p(double x)

返回參數(shù)和 1 之和的自然對數(shù)。請注意,對于較小的值 x,log1p(x) 的結(jié)果比 log( 的浮點(diǎn)計(jì)算更接近 ln(1 + x) 的真實(shí)結(jié)果 1.0+x)。

特別情況:

  • 如果參數(shù)為 NaN 或小于 -1,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,那么結(jié)果是正無窮大。
  • 如果參數(shù)是負(fù)數(shù),那么結(jié)果是負(fù)無窮大。
  • 如果參數(shù)為零,則結(jié)果為零,符號與參數(shù)相同。

參數(shù):

參數(shù)名稱 參數(shù)描述
x 一個值

返回:

ln(x + 1) 的值,x + 1 的自然對數(shù)

copySign

public static double copySign(double magnitude, double sign)

返回帶有第二個浮點(diǎn)參數(shù)符號的第一個浮點(diǎn)參數(shù)。 對于此方法,NaN 符號參數(shù)始終被視為正數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
magnitude 提供結(jié)果大小的參數(shù)
sign 提供結(jié)果符號的參數(shù)

返回:

具有大小和符號符號的值。

copySign

public static float copySign(float magnitude, float sign)

返回帶有第二個浮點(diǎn)參數(shù)符號的第一個浮點(diǎn)參數(shù)。 對于此方法,NaN 符號參數(shù)始終被視為正數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
magnitude 提供結(jié)果大小的參數(shù)
sign 提供結(jié)果符號的參數(shù)

返回:

具有大小和符號符號的值。

getExponent

public static int getExponent(float f)

返回浮點(diǎn)數(shù)表示中使用的無偏指數(shù)。 特別情況:

  • 如果參數(shù)為 NaN 或無窮大,則結(jié)果為 Float#MAX_EXPONENT + 1。
  • 如果參數(shù)為零或次正規(guī),則結(jié)果為 Float#MIN_EXPONENT -1。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 一個浮點(diǎn)值

返回:

參數(shù)的無偏指數(shù)

getExponent

public static int getExponent(double d)

返回用于表示雙精度的無偏指數(shù)。 特別情況:

  • 如果參數(shù)為 NaN 或無窮大,則結(jié)果為 Double#MAX_EXPONENT + 1。
  • 如果參數(shù)為零或次正規(guī),則結(jié)果為 Double#MIN_EXPONENT -1。

參數(shù):

參數(shù)名稱 參數(shù)描述
d 一個double值

返回:

參數(shù)的無偏指數(shù)

nextAfter

public static double nextAfter(double start, double direction)

返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點(diǎn)數(shù)。 如果兩個參數(shù)比較相等,則返回第二個參數(shù)。

特別情況:

  • 如果任一參數(shù)是 NaN,則返回 NaN。
  • 如果兩個參數(shù)都是帶符號的零,則返回方向不變(如果參數(shù)比較相等,則返回第二個參數(shù)的要求暗示了這一點(diǎn))。
  • 如果 start 是 ±Double#MIN_VALUE 并且 direction 的值使得結(jié)果應(yīng)該具有較小的幅度,則返回與 start 具有相同符號的零。
  • 如果 start 是無限的,并且 direction 的值使得結(jié)果應(yīng)該具有較小的幅度,則返回與 start 具有相同符號的 Double#MAX_VALUE。
  • 如果 start 等于 ± Double#MAX_VALUE 并且 direction 的值使得結(jié)果應(yīng)該具有更大的量級,則返回與 start 符號相同的無窮大。

參數(shù):

參數(shù)名稱 參數(shù)描述
start 起始浮點(diǎn)值
direction 指示應(yīng)該返回 start 的哪個鄰居或 start 的值

返回:

以方向相鄰的浮點(diǎn)數(shù)開始的方向。

nextAfter

public static float nextAfter(float start, double direction)

返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點(diǎn)數(shù)。 如果兩個參數(shù)比較相等,則返回與第二個參數(shù)等效的值。

特別情況:

  • 如果任一參數(shù)是 NaN,則返回 NaN。
  • 如果兩個參數(shù)都是帶符號的零,則返回與方向等效的值。
  • 如果 start 是 ±Float#MIN_VALUE 并且 direction 的值使得結(jié)果應(yīng)該具有較小的幅度,則返回與 start 具有相同符號的零。
  • 如果 start 是無限的,并且 direction 的值使得結(jié)果應(yīng)該具有較小的幅度,則返回與 start 具有相同符號的 Float#MAX_VALUE。
  • 如果 start 等于 ± Float#MAX_VALUE 并且 direction 的值使得結(jié)果應(yīng)該具有更大的幅度,則返回與 start 符號相同的無窮大。

參數(shù):

參數(shù)名稱 參數(shù)描述
start 起始浮點(diǎn)值
direction 指示應(yīng)該返回 start 的哪個鄰居或 start 的值

返回:

以方向相鄰的浮點(diǎn)數(shù)開始的方向。

nextUp

public static double nextUp(double d)

返回正無窮方向上與 d 相鄰的浮點(diǎn)值。 該方法在語義上等價(jià)于 nextAfter(d, Double.POSITIVE_INFINITY); 但是,nextUp 實(shí)現(xiàn)可能比其等效的 nextAfter 調(diào)用運(yùn)行得更快。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,則結(jié)果是正無窮大。
  • 如果參數(shù)為零,則結(jié)果為 Double#MIN_VALUE

參數(shù):

參數(shù)名稱 參數(shù)描述
d 起始浮點(diǎn)值

返回:

接近正無窮大的相鄰浮點(diǎn)值。

nextUp

public static float nextUp(float f)

返回在正無窮大方向上與 f 相鄰的浮點(diǎn)值。 這個方法在語義上等價(jià)于 nextAfter(f, Float.POSITIVE_INFINITY); 但是,nextUp 實(shí)現(xiàn)可能比其等效的 nextAfter 調(diào)用運(yùn)行得更快。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)是正無窮大,則結(jié)果是正無窮大。
  • 如果參數(shù)為零,則結(jié)果為 Float#MIN_VALUE

參數(shù):

參數(shù)名稱 參數(shù)描述
f 起始浮點(diǎn)值

返回:

接近正無窮大的相鄰浮點(diǎn)值。

nextDown

public static double nextDown(double d)

返回在負(fù)無窮方向上與 d 相鄰的浮點(diǎn)值。 這個方法在語義上等價(jià)于 nextAfter(d, Double.NEGATIVE_INFINITY); 但是,nextDown 實(shí)現(xiàn)可能比其等效的 nextAfter 調(diào)用運(yùn)行得更快。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)為負(fù)無窮大,則結(jié)果為負(fù)無窮大。
  • 如果參數(shù)為零,則結(jié)果為 -Double.MIN_VALUE

參數(shù):

參數(shù)名稱 參數(shù)描述
d 起始浮點(diǎn)值

返回:

接近負(fù)無窮大的相鄰浮點(diǎn)值。

nextDown

public static float nextDown(float f)

返回在負(fù)無窮方向上與 f 相鄰的浮點(diǎn)值。 該方法在語義上等價(jià)于 nextAfter(f, Float.NEGATIVE_INFINITY); 但是,nextDown 實(shí)現(xiàn)可能比其等效的 nextAfter 調(diào)用運(yùn)行得更快。

特別情況:

  • 如果參數(shù)為 NaN,則結(jié)果為 NaN。
  • 如果參數(shù)為負(fù)無窮大,則結(jié)果為負(fù)無窮大。
  • 如果參數(shù)為零,則結(jié)果為 -Float.MIN_VALUE

參數(shù):

參數(shù)名稱 參數(shù)描述
f 起始浮點(diǎn)值

返回:

接近負(fù)無窮大的相鄰浮點(diǎn)值。

scalb

public static double scalb(double d, int scaleFactor)

返回四舍五入的 d × 2scaleFactor,就像通過單個正確舍入的浮點(diǎn)乘以雙精度值集的成員一樣。 有關(guān)浮點(diǎn)值集的討論,請參閱 Java 語言規(guī)范。 如果結(jié)果的指數(shù)在 Double#MIN_EXPONENT 和 Double#MAX_EXPONENT 之間,則答案是精確計(jì)算的。 如果結(jié)果的指數(shù)大于 Double.MAX_EXPONENT,則返回?zé)o窮大。 請注意,如果結(jié)果不正常,則可能會丟失精度; 也就是說,當(dāng) scalb(x, n) 為次正規(guī)時, scalb(scalb(x, n), -n) 可能不等于 x。 當(dāng)結(jié)果為非 NaN 時,結(jié)果的符號與 d 相同。

特別情況:

  • 如果第一個參數(shù)是 NaN,則返回 NaN。
  • 如果第一個參數(shù)是無限的,則返回相同符號的無窮大。
  • 如果第一個參數(shù)為零,則返回相同符號的零。

參數(shù):

參數(shù)名稱 參數(shù)描述
d 要按 2 的冪進(jìn)行縮放的數(shù)字。
scaleFactor 用于縮放 d 的 2 的冪

返回:

d × 2scaleFactor

scalb

public static float scalb(float f, int scaleFactor)

返回 f × 2scaleFactor 舍入,就好像通過單個正確舍入的浮點(diǎn)乘以浮點(diǎn)值集的成員一樣。 有關(guān)浮點(diǎn)值集的討論,請參閱 Java 語言規(guī)范。 如果結(jié)果的指數(shù)介于 Float#MIN_EXPONENT 和 Float#MAX_EXPONENT 之間,則答案是精確計(jì)算的。 如果結(jié)果的指數(shù)大于 Float.MAX_EXPONENT,則返回?zé)o窮大。 請注意,如果結(jié)果不正常,則可能會丟失精度; 也就是說,當(dāng) scalb(x, n) 為次正規(guī)時, scalb(scalb(x, n), -n) 可能不等于 x。 當(dāng)結(jié)果為非 NaN 時,結(jié)果的符號與 f 相同。

特別情況:

  • 如果第一個參數(shù)是 NaN,則返回 NaN。
  • 如果第一個參數(shù)是無限的,則返回相同符號的無窮大。
  • 如果第一個參數(shù)為零,則返回相同符號的零。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要按 2 的冪進(jìn)行縮放的數(shù)字。
scaleFactor 用于縮放 f 的 2 的冪

返回:

f × 2scaleFactor

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號