W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.lang.Math
public final class Math
extends Object
Math 類包含執(zhí)行基本數(shù)值運算的方法,例如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。
與 StrictMath 類的一些數(shù)值方法不同,Math 類的等效函數(shù)的所有實現(xiàn)都未定義為返回逐位相同的結(jié)果。這種放松允許在不需要嚴格的再現(xiàn)性的情況下實現(xiàn)更好的性能。
默認情況下,許多 Math 方法只是簡單地調(diào)用 StrictMath 中的等效方法來實現(xiàn)它們。鼓勵代碼生成器在可用的情況下使用特定于平臺的本機庫或微處理器指令,以提供更高性能的數(shù)學方法實現(xiàn)。這種更高性能的實現(xiàn)仍然必須符合 Math.xml 的規(guī)范。
實現(xiàn)規(guī)范的質(zhì)量涉及兩個屬性,返回結(jié)果的準確性和方法的單調(diào)性。浮點數(shù)學方法的準確性以 ulps 為單位,最后的單位。對于給定的浮點格式,特定實數(shù)值的 ulp 是包圍該數(shù)值的兩個浮點值之間的距離。當討論一個方法作為一個整體而不是一個特定參數(shù)的準確性時,引用的 ulp 數(shù)量是針對任何參數(shù)的最壞情況錯誤。如果一個方法的誤差總是小于 0.5 ulps,該方法總是返回最接近精確結(jié)果的浮點數(shù);這種方法是正確四舍五入的。正確舍入的方法通常是浮點近似的最佳方法;但是,正確舍入許多浮點方法是不切實際的。相反,對于 Math 類,某些方法允許更大的誤差范圍為 1 或 2 ulps。非正式地,在 1 ulp 誤差范圍內(nèi),當精確結(jié)果是可表示的數(shù)字時,精確結(jié)果應(yīng)作為計算結(jié)果返回;否則,可以返回包含確切結(jié)果的兩個浮點值中的任何一個。對于數(shù)量級較大的精確結(jié)果,括號的端點之一可能是無限的。除了個別論點的準確性外,保持不同論點的方法之間的適當關(guān)系也很重要。因此,大多數(shù) ulp 誤差大于 0.5 的方法都要求是半單調(diào)的:只要數(shù)學函數(shù)不減,浮點逼近也是如此,同樣,只要數(shù)學函數(shù)不增,浮點逼近也是點近似。并非所有具有 1 ulp 精度的近似值都會自動滿足單調(diào)性要求。
該平臺使用帶有 int 和 long 原始類型的帶符號二進制補碼整數(shù)算術(shù)。開發(fā)人員應(yīng)選擇原始類型以確保算術(shù)運算始終產(chǎn)生正確的結(jié)果,這在某些情況下意味著運算不會溢出計算值的范圍。最佳實踐是選擇原始類型和算法以避免溢出。在大小為 int 或 long 且需要檢測溢出錯誤的情況下,方法 addExact、subtractExact、multiplyExact 和 toIntExact 在結(jié)果溢出時拋出 ArithmeticException。對于其他算術(shù)運算,例如除法、絕對值、遞增、遞減和求反,溢出僅發(fā)生在特定的最小值或最大值時,應(yīng)根據(jù)需要檢查最小值或最大值。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static double | E | 比任何其他值更接近 e(自然對數(shù)的底)的雙精度值。 |
static double | PI | 比任何其他值更接近 pi 的雙精度值,即圓的周長與其直徑的比率。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
static double | abs(double a) | 返回雙精度值的絕對值。 |
static float | abs(float a) | 返回浮點值的絕對值。 |
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(double y, double x) | 從直角坐標 (x, y) 到極坐標 (r, theta) 的轉(zhuǎn)換中返回角度 theta。 |
static double | cbrt(double a) | 返回雙精度值的立方根。 |
static double | ceil(double a) | 返回大于或等于參數(shù)且等于數(shù)學整數(shù)的最?。ㄗ罱咏摕o窮大)雙精度值。 |
static double | copySign(double magnitude, double sign) | 返回帶有第二個浮點參數(shù)符號的第一個浮點參數(shù)。 |
static float | copySign(float magnitude, float sign) | 返回帶有第二個浮點參數(shù)符號的第一個浮點參數(shù)。 |
static double | cos(double a) | 返回角度的三角余弦值。 |
static double | cosh(double x) | 返回 double 值的雙曲余弦值。 |
static int | decrementExact(int a) | 返回減一的參數(shù),如果結(jié)果溢出 int,則拋出異常。 |
static long | decrementExact(long a) | 返回減一的參數(shù),如果結(jié)果溢出 long 則拋出異常。 |
static double | exp(double a) | 返回歐拉數(shù) e 的雙精度次方。 |
static double | expm1(double x) | 返回 ex -1。 |
static double | floor(double a) | 返回小于或等于參數(shù)且等于數(shù)學整數(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) | 返回長參數(shù)的底模。 |
static int | getExponent(double d) | 返回用于表示雙精度的無偏指數(shù)。 |
static int | getExponent(float f) | 返回浮點數(shù)表示中使用的無偏指數(shù)。 |
static double | hypot(double x, double y) | 返回 sqrt(x2 +y2) 沒有中間溢出或下溢。 |
static double | IEEEremainder(double f1, double f2) | 計算 IEEE 754 標準規(guī)定的兩個參數(shù)的余數(shù)運算。 |
static int | incrementExact(int a) | 返回加一的參數(shù),如果結(jié)果溢出 int 則拋出異常。 |
static long | incrementExact(long a) | 返回加一的參數(shù),如果結(jié)果溢出 long 則拋出異常。 |
static double | log(double a) | 返回雙精度值的自然對數(shù)(底數(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) | 返回兩個浮點值中的較大者。 |
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) | 返回兩個浮點值中較小的一個。 |
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 int | negateExact(int a) | 返回參數(shù)的否定,如果結(jié)果溢出 int 則拋出異常。 |
static long | negateExact(long a) | 返回參數(shù)的否定,如果結(jié)果溢出 long 則拋出異常。 |
static double | nextAfter(double start, double direction) | 返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點數(shù)。 |
static float | nextAfter(float start, double direction) | 返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點數(shù)。 |
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) | 返回第一個參數(shù)的第二個參數(shù)次冪的值。 |
static double | random() | 返回一個帶正號的雙精度值,大于或等于 0.0 且小于 1.0。 |
static double | rint(double a) | 返回與參數(shù)值最接近且等于數(shù)學整數(shù)的雙精度值。 |
static long | round(double a) | 返回最接近參數(shù)的長整數(shù),并舍入為正無窮大。 |
static int | round(float a) | 返回最接近參數(shù)的 int,并舍入為正無窮大。 |
static double | scalb(double d, int scaleFactor) | 返回四舍五入的 d × 2scaleFactor,就像通過單個正確舍入的浮點乘以雙精度值集的成員一樣。 |
static float | scalb(float f, int scaleFactor) | 返回 f × 2scaleFactor 舍入,就好像通過單個正確舍入的浮點乘以浮點值集的成員一樣。 |
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) | 返回長參數(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 |
public static final double E
比任何其他值更接近 e(自然對數(shù)的底)的雙精度值。
public static final double PI
比任何其他值更接近 pi 的雙精度值,即圓的周長與其直徑的比率。
public static double sin(double a)
返回角度的三角正弦值。 特別案例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個角度,以弧度為單位。 |
返回:
論證的正弦。
public static double cos(double a)
返回角度的三角余弦值。 特別案例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個角度,以弧度為單位。 |
返回:
參數(shù)的余弦。
public static double tan(double a)
返回角度的三角正切。 特別案例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個角度,以弧度為單位。 |
返回:
論點的切線。
public static double asin(double a)
返回一個值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。 特別案例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要返回其反正弦的值。 |
返回:
參數(shù)的反正弦。
public static double acos(double a)
返回一個值的反余弦值; 返回的角度在 0.0 到 pi 的范圍內(nèi)。 特例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要返回其反余弦值的值。 |
返回:
參數(shù)的反余弦。
public static double atan(double a)
返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范圍內(nèi)。 特別案例:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要返回其反正切的值。 |
返回:
參數(shù)的反正切。
public static double toRadians(double angdeg)
將以度為單位的角度轉(zhuǎn)換為以弧度為單位的大致等效角度。 從度數(shù)到弧度的轉(zhuǎn)換通常是不精確的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
angdeg | 一個角度,以度為單位 |
返回:
以弧度為單位的角度 angdeg 的測量值。
public static double toDegrees(double angrad)
將以弧度測量的角度轉(zhuǎn)換為以度為單位測量的大致等效角度。 從弧度到度數(shù)的轉(zhuǎn)換通常是不精確的; 用戶不應(yīng)該*期望 cos(toRadians(90.0)) 完全等于 0.0。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
angrad | 一個角度,以弧度為單位 |
返回:
以度為單位的角度 angrad 的測量值。
public static double exp(double a)
返回歐拉數(shù) e 的雙精度次方。 特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 將 e 提高到的指數(shù)。 |
返回:
值 ea,其中 e 是自然對數(shù)的底。
public static double log(double a)
返回雙精度值的自然對數(shù)(底數(shù) e)。 特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
a中的值,a的自然對數(shù)。
public static double log10(double a)
返回雙精度值的以 10 為底的對數(shù)。 特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
a 的以 10 為底的對數(shù)。
public static double sqrt(double a)
返回雙精度值的正確舍入正平方根。 特別情況:
否則,結(jié)果是最接近參數(shù)值的真正數(shù)學平方根的雙精度值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
a 的正平方根。 如果參數(shù)為 NaN 或小于零,則結(jié)果為 NaN。
public static double cbrt(double a)
返回雙精度值的立方根。 對于正有限 x,cbrt(-x) == -cbrt(x); 也就是說,負值的立方根是該值大小的立方根的負數(shù)。 特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
a的立方根。
public static double IEEEremainder(double f1, double f2)
計算 IEEE 754 標準規(guī)定的兩個參數(shù)的余數(shù)運算。 余數(shù)值在數(shù)學上等于 f1 - f2 × n,其中 n 是最接近商 f1/f2 的精確數(shù)學值的數(shù)學整數(shù),如果兩個數(shù)學整數(shù)同樣接近 f1/f2,則 n 是偶數(shù)整數(shù)。 如果余數(shù)為零,則其符號與第一個參數(shù)的符號相同。 特別案例:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f1 | 被除數(shù)。 |
f2 | 除數(shù)。 |
返回:
f1 除以 f2 的余數(shù)。
public static double ceil(double a)
返回大于或等于參數(shù)且等于數(shù)學整數(shù)的最?。ㄗ罱咏摕o窮大)雙精度值。 特別案例:
請注意,Math.ceil(x) 的值正是 -Math.floor(-x) 的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
大于或等于參數(shù)且等于數(shù)學整數(shù)的最?。ㄗ罱咏摕o窮大)浮點值。
public static double floor(double a)
返回小于或等于參數(shù)且等于數(shù)學整數(shù)的最大(最接近正無窮大)雙精度值。 特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個值 |
返回:
小于或等于參數(shù)且等于數(shù)學整數(shù)的最大(最接近正無窮大)浮點值。
public static double rint(double a)
返回與參數(shù)值最接近且等于數(shù)學整數(shù)的雙精度值。 如果兩個作為數(shù)學整數(shù)的雙精度值同樣接近,則結(jié)果是偶數(shù)的整數(shù)值。 特別案例:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個double值。 |
返回:
最接近等于數(shù)學整數(shù)的 a 的浮點值。
public static double atan2(double y, double x)
從直角坐標 (x, y) 到極坐標 (r, theta) 的轉(zhuǎn)換中返回角度 theta。此方法通過計算 -pi 到 pi 范圍內(nèi)的 y/x 的反正切來計算相位 theta。特別案例:
計算結(jié)果必須在精確結(jié)果的 2 ulps 范圍內(nèi)。結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
y | 縱坐標 |
x | 橫坐標 |
返回:
極坐標中點 (r, theta) 的 theta 分量,對應(yīng)于笛卡爾坐標中的點 (x, y)。
public static double pow(double a, double b)
返回第一個參數(shù)的第二個參數(shù)次冪的值。 特別情況:
(在前面的描述中,浮點值被認為是整數(shù)當且僅當它是有限的并且是方法 ceil 的不動點,或者等效地,方法層的不動點。一個值是一個不動點 當且僅當將方法應(yīng)用于值的結(jié)果等于該值時,才屬于單參數(shù)方法。)
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 底數(shù) |
b | 指數(shù) |
返回:
值 ab。
public static int round(float a)
返回最接近參數(shù)的 int,并舍入為正無窮大。
特別案例:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要舍入為整數(shù)的浮點值。 |
返回:
參數(shù)的值四舍五入到最接近的 int 值。
public static long round(double a)
返回最接近參數(shù)的長整數(shù),并舍入為正無窮大。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要舍入為 long 的浮點值。 |
返回:
參數(shù)的值四舍五入到最接近的 long 值。
public static double random()
返回一個帶正號的雙精度值,大于或等于 0.0 且小于 1.0。 返回值是偽隨機選擇的,從該范圍(近似)均勻分布。
當這個方法第一次被調(diào)用時,它會創(chuàng)建一個新的偽隨機數(shù)生成器,就像通過表達式一樣
new java.util.Random()
這個新的偽隨機數(shù)生成器隨后用于對該方法的所有調(diào)用,并且不會在其他任何地方使用。
此方法已正確同步,以允許多個線程正確使用。 但是,如果許多線程需要以很高的速率生成偽隨機數(shù),則可能會減少每個線程對擁有自己的偽隨機數(shù)生成器的爭用。
返回:
大于或等于 0.0 且小于 1.0 的偽隨機 double。
public static int addExact(int x, int y)
返回其參數(shù)的總和,如果結(jié)果溢出 int,則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個 int |
public static long addExact(long x, long y)
返回其參數(shù)的總和,如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int subtractExact(int x, int y)
返回參數(shù)的差異,如果結(jié)果溢出 int,則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 從第一個值中減去的第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個 int |
public static long subtractExact(long x, long y)
返回參數(shù)的差異,如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 從第一個值中減去的第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int multiplyExact(int x, int y)
返回參數(shù)的乘積,如果結(jié)果溢出 int,則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個 int |
public static long multiplyExact(long x, long y)
返回參數(shù)的乘積,如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 第一個值 |
y | 第二個值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int incrementExact(int a)
返回加一的參數(shù),如果結(jié)果溢出 int 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要增加的值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個 int |
public static long incrementExact(long a)
返回加一的參數(shù),如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要增加的值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int decrementExact(int a)
返回減一的參數(shù),如果結(jié)果溢出 int,則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要減少的值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | if the result overflows an int |
public static long decrementExact(long a)
返回減一的參數(shù),如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要減少的值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int negateExact(int a)
返回參數(shù)的否定,如果結(jié)果溢出 int 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要否定的值 |
返回:
j結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個 int |
public static long negateExact(long a)
返回參數(shù)的否定,如果結(jié)果溢出 long 則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要否定的值 |
返回:
結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果結(jié)果溢出一個long |
public static int toIntExact(long value)
返回long參數(shù)的值; 如果值溢出 int,則拋出異常。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
value | 一個long值 |
返回:
作為 int 的參數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果參數(shù)溢出一個 int |
public static int floorDiv(int x, int y)
返回小于或等于代數(shù)商的最大(最接近正無窮大)int 值。 有一種特殊情況,如果被除數(shù)是 Integer#MIN_VALUE 而除數(shù)是 -1,則發(fā)生整數(shù)溢出,結(jié)果等于 Integer.MIN_VALUE。
正常整數(shù)除法在舍入到零舍入模式(截斷)下運行。 此操作改為在朝負無窮大(下限)舍入模式下進行。 當精確結(jié)果為負時,下舍入模式給出的結(jié)果與截斷不同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 被除數(shù) |
y | 除數(shù) |
返回:
小于或等于代數(shù)商的最大(最接近正無窮大)int 值。
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果除數(shù) y 為零 |
public static long floorDiv(long x, long y)
返回小于或等于代數(shù)商的最大(最接近正無窮大)long 值。 有一種特殊情況,如果被除數(shù)是 Long#MIN_VALUE 而除數(shù)是 -1,則發(fā)生整數(shù)溢出,結(jié)果等于 Long.MIN_VALUE。
正常整數(shù)除法在舍入到零舍入模式(截斷)下運行。 此操作改為在朝負無窮大(下限)舍入模式下進行。 當精確結(jié)果為負時,下舍入模式給出的結(jié)果與截斷不同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 被除數(shù) |
y | 除數(shù) |
返回:
小于或等于代數(shù)商的最大(最接近正無窮大)long 值。
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果除數(shù) y 為零 |
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)系是這樣的:
floorMod 和 % 運算符之間的值差異是由于 floorDiv 返回小于或等于商的整數(shù)與返回最接近零的整數(shù)的 / 運算符之間的差異。
例如:
如果參數(shù)的符號未知并且需要正模數(shù),則可以將其計算為 (floorMod(x, y) + abs(y)) % abs(y)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 被除數(shù) |
y | 除數(shù) |
返回:
底模 x - (floorDiv(x, y) * y)
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果除數(shù) y 為零 |
public static long floorMod(long x, long y)
返回long參數(shù)的底模。
底模為 x - (floorDiv(x, y) * y),與除數(shù) y 具有相同的符號,并且在 -abs(y) < r < +abs(y) 的范圍內(nèi)。
floorDiv 和 floorMod 之間的關(guān)系是這樣的:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 被除數(shù) |
y | 除數(shù) |
返回:
底模 x - (floorDiv(x, y) * y)
Throws:
Throw名稱 | Throw描述 |
---|---|
ArithmeticException | 如果除數(shù) y 為零 |
public static int abs(int a)
返回 int 值的絕對值。 如果參數(shù)不是負數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。
請注意,如果參數(shù)等于 Integer#MIN_VALUE 的值,即最負的可表示 int 值,則結(jié)果是相同的值,即為負。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要確定其絕對值的參數(shù) |
返回:
參數(shù)的絕對值。
public static long abs(long a)
返回一個 long 值的絕對值。 如果參數(shù)不是負數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。
請注意,如果參數(shù)等于 Long#MIN_VALUE 的值(可表示的最負的 long 值),則結(jié)果是相同的值,即為負。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要確定其絕對值的參數(shù) |
返回:
參數(shù)的絕對值。
public static float abs(float a)
返回浮點值的絕對值。 如果參數(shù)不是負數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。 特別案例:
換句話說,結(jié)果與表達式的值相同:
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要確定其絕對值的參數(shù) |
返回:
參數(shù)的絕對值。
public static double abs(double a)
返回雙精度值的絕對值。 如果參數(shù)不是負數(shù),則返回參數(shù)。 如果參數(shù)是否定的,則返回參數(shù)的否定。 特別案例:
換句話說,結(jié)果與表達式的值相同:
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 要確定其絕對值的參數(shù) |
返回:
參數(shù)的絕對值。
public static int max(int a, int b)
返回兩個 int 值中的較大者。 也就是說,結(jié)果是更接近 Integer#MAX_VALUE 值的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點。 |
b | 另一個論點。 |
返回:
a 和 b 中的較大者。
public static long max(long a, long b)
返回兩個 long 值中的較大者。 也就是說,結(jié)果是參數(shù)更接近 Long#MAX_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中的較大者。
public static float max(float a, float b)
返回兩個浮點值中的較大者。 也就是說,結(jié)果是更接近正無窮大的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運算符不同,此方法認為負零嚴格小于正零。 如果一個參數(shù)為正零而另一個為負零,則結(jié)果為正零。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中的較大者。
public static double max(double a, double b)
返回兩個雙精度值中的較大者。 也就是說,結(jié)果是更接近正無窮大的參數(shù)。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運算符不同,此方法認為負零嚴格小于正零。 如果一個參數(shù)為正零而另一個為負零,則結(jié)果為正零。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點。 |
b | 另一個論點。 |
返回:
a 和 b 中的較大者。
public static int min(int a, int b)
返回兩個 int 值中較小的一個。 也就是說,參數(shù)的結(jié)果更接近 Integer#MIN_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中較小的一個。
public static long min(long a, long b)
返回兩個 long 值中較小的一個。 也就是說,結(jié)果是參數(shù)更接近 Long#MIN_VALUE 的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中較小的一個。
public static float min(float a, float b)
返回兩個浮點值中較小的一個。 也就是說,結(jié)果是更接近負無窮大的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運算符不同,此方法認為負零嚴格小于正零。 如果一個參數(shù)為正零而另一個為負零,則結(jié)果為負零。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中較小的一個。
public static double min(double a, double b)
返回兩個雙精度值中較小的一個。 也就是說,結(jié)果是更接近負無窮大的值。 如果參數(shù)具有相同的值,則結(jié)果是相同的值。 如果任一值為 NaN,則結(jié)果為 NaN。 與數(shù)值比較運算符不同,此方法認為負零嚴格小于正零。 如果一個參數(shù)為正零而另一個為負零,則結(jié)果為負零。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
a | 一個論點 |
b | 另一個論點 |
返回:
a 和 b 中較小的一個。
public static double ulp(double d)
返回參數(shù)的 ulp 的大小。 double 值的最后一個單位 ulp 是該浮點值與幅度下一個更大的 double 值之間的正距離。 請注意,對于非 NaN x,ulp(-x) == ulp(x)。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 要返回 ulp 的浮點值 |
返回:
參數(shù)的 ulp 大小
public static float ulp(float f)
返回參數(shù)的 ulp 的大小。 浮點值的最后一個單位 ulp 是該浮點值與幅度下一個更大的浮點值之間的正距離。 請注意,對于非 NaN x,ulp(-x) == ulp(x)。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 要返回 ulp 的浮點值 |
返回:
參數(shù)的 ulp 大小
public static double signum(double d)
返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0,如果參數(shù)小于零,則為 -1.0。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 要返回其符號的浮點值 |
返回:
參數(shù)的符號函數(shù)
public static float signum(float f)
返回參數(shù)的符號函數(shù); 如果參數(shù)為零,則為零,如果參數(shù)大于零,則為 1.0f,如果參數(shù)小于零,則為 -1.0f。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 要返回其符號的浮點值 |
返回:
參數(shù)的符號函數(shù)
public static double sinh(double x)
返回 double 值的雙曲正弦值。 x 的雙曲正弦定義為 (ex - e-x)/2,其中 e 是 Math#E。
特別情況:
計算結(jié)果必須在精確結(jié)果的 2.5 ulps 范圍內(nèi)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 要返回其雙曲正弦的數(shù)字。 |
返回:
x 的雙曲正弦。
public static double cosh(double x)
返回 double 值的雙曲余弦值。 x 的雙曲余弦定義為 (ex + e-x)/2,其中 e 是 Math#E。
特別情況:
計算結(jié)果必須在精確結(jié)果的 2.5 ulps 范圍內(nèi)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 要返回其雙曲余弦的數(shù)字。 |
返回:
x 的雙曲余弦。
public static double tanh(double x)
返回 double 值的雙曲正切值。 x 的雙曲正切定義為 (ex - e-x)/(ex + e-x),換言之,Math#sinh/Math#cosh。 請注意,精確 tanh 的絕對值始終小于 1。
特別情況:
計算結(jié)果必須在精確結(jié)果的 2.5 ulps 范圍內(nèi)。 對于任何有限輸入,tanh 的結(jié)果必須具有小于或等于 1 的絕對值。請注意,一旦 tanh 的精確結(jié)果在 ±1 的極限值的 ulp 的 1/2 以內(nèi),正確符號的 ±1.0 應(yīng)該是 回來。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 要返回其雙曲正切的數(shù)字。 |
返回:
x 的雙曲正切。
public static double hypot(double x, double y)
返回 sqrt(x2 +y2) 沒有中間溢出或下溢。
特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 如果一個參數(shù)保持不變,則另一個參數(shù)的結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 一個值 |
y | 一個值 |
返回:
sqrt(x2 +y2) 沒有中間溢出或下溢
public static double expm1(double x)
返回 ex -1。 請注意,對于接近 0 的 x 值,expm1(x) + 1 的精確總和比 exp(x) 更接近 ex 的真實結(jié)果。
特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。 任何有限輸入的 expm1 的結(jié)果必須大于或等于 -1.0。 請注意,一旦 ex - 1 的確切結(jié)果在限制值 -1 的 1/2 ulp 范圍內(nèi),則應(yīng)返回 -1.0。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 在計算 ex -1 時將 e 提高到的指數(shù)。 |
返回:
值 ex - 1。
public static double log1p(double x)
返回參數(shù)和 1 之和的自然對數(shù)。請注意,對于較小的值 x,log1p(x) 的結(jié)果比 log( 的浮點計算更接近 ln(1 + x) 的真實結(jié)果 1.0+x)。
特別情況:
計算結(jié)果必須在精確結(jié)果的 1 ulp 范圍內(nèi)。 結(jié)果必須是半單調(diào)的。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 一個值 |
返回:
ln(x + 1) 的值,x + 1 的自然對數(shù)
public static double copySign(double magnitude, double sign)
返回帶有第二個浮點參數(shù)符號的第一個浮點參數(shù)。 請注意,與 StrictMath#copySign(double, double) 方法不同,此方法不需要將 NaN 符號參數(shù)視為正值; 允許實現(xiàn)將某些 NaN 參數(shù)視為正數(shù),將其他 NaN 參數(shù)視為負數(shù),以提高性能。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
magnitude | 提供結(jié)果大小的參數(shù) |
sign | 提供結(jié)果符號的參數(shù) |
返回:
具有大小和符號符號的值。
public static float copySign(float magnitude, float sign)
返回帶有第二個浮點參數(shù)符號的第一個浮點參數(shù)。 請注意,與 StrictMath#copySign(float, float) 方法不同,此方法不需要將 NaN 符號參數(shù)視為正值; 允許實現(xiàn)將某些 NaN 參數(shù)視為正數(shù),將其他 NaN 參數(shù)視為負數(shù),以提高性能。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
magnitude | 提供結(jié)果大小的參數(shù) |
sign | 提供結(jié)果符號的參數(shù) |
返回:
具有大小和符號符號的值。
public static int getExponent(float f)
返回浮點數(shù)表示中使用的無偏指數(shù)。 特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 一個浮點數(shù) |
返回:
參數(shù)的無偏指數(shù)
public static int getExponent(double d)
返回用于表示雙精度的無偏指數(shù)。 特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 一個double類型的值 |
返回:
參數(shù)的無偏指數(shù)
public static double nextAfter(double start, double direction)
返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點數(shù)。 如果兩個參數(shù)比較相等,則返回第二個參數(shù)。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
start | 開始的浮點值 |
direction | 指示應(yīng)該返回 start 的哪個相鄰數(shù)或 start 的值 |
返回:
以方向相鄰的浮點數(shù)開始的方向。
public static float nextAfter(float start, double direction)
返回第二個參數(shù)方向上與第一個參數(shù)相鄰的浮點數(shù)。 如果兩個參數(shù)比較相等,則返回與第二個參數(shù)等效的值。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
start | 起始浮點值 |
direction | 指示應(yīng)該返回 start 的哪個相鄰數(shù)或 start 的值 |
返回:
以方向相鄰的浮點數(shù)開始的方向。
public static double nextUp(double d)
返回正無窮方向上與 d 相鄰的浮點值。 該方法在語義上等價于 nextAfter(d, Double.POSITIVE_INFINITY); 但是,nextUp 實現(xiàn)可能比其等效的 nextAfter 調(diào)用運行得更快。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 起始浮點值 |
返回:
接近正無窮大的相鄰浮點值。
public static float nextUp(float f)
返回在正無窮大方向上與 f 相鄰的浮點值。 這個方法在語義上等價于 nextAfter(f, Float.POSITIVE_INFINITY); 但是,nextUp 實現(xiàn)可能比其等效的 nextAfter 調(diào)用運行得更快。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 起始浮點值 |
返回:
接近正無窮大的相鄰浮點值。
public static double nextDown(double d)
返回在負無窮方向上與 d 相鄰的浮點值。 這個方法在語義上等價于 nextAfter(d, Double.NEGATIVE_INFINITY); 但是,nextDown 實現(xiàn)可能比其等效的 nextAfter 調(diào)用運行得更快。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 起始浮點值 |
返回:
接近負無窮大的相鄰浮點值。
public static float nextDown(float f)
返回在負無窮方向上與 f 相鄰的浮點值。 該方法在語義上等價于 nextAfter(f, Float.NEGATIVE_INFINITY); 但是,nextDown 實現(xiàn)可能比其等效的 nextAfter 調(diào)用運行得更快。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 起始浮點值 |
返回:
接近負無窮大的相鄰浮點值。
public static double scalb(double d, int scaleFactor)
返回四舍五入的 d × 2scaleFactor,就像通過單個正確舍入的浮點乘以雙精度值集的成員一樣。 有關(guān)浮點值集的討論,請參閱 Java 語言規(guī)范。 如果結(jié)果的指數(shù)在 Double#MIN_EXPONENT 和 Double#MAX_EXPONENT 之間,則答案是精確計算的。 如果結(jié)果的指數(shù)大于 Double.MAX_EXPONENT,則返回無窮大。 請注意,如果結(jié)果不正常,則可能會丟失精度; 也就是說,當 scalb(x, n) 為次正規(guī)時, scalb(scalb(x, n), -n) 可能不等于 x。 當結(jié)果為非 NaN 時,結(jié)果的符號與 d 相同。
特別案例:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
d | 要按 2 的冪進行縮放的數(shù)字。 |
scaleFactor | 用于縮放 d 的 2 的冪 |
返回:
d × 2scaleFactor
public static float scalb(float f, int scaleFactor)
返回 f × 2scaleFactor 舍入,就好像通過單個正確舍入的浮點乘以浮點值集的成員一樣。 有關(guān)浮點值集的討論,請參閱 Java 語言規(guī)范。 如果結(jié)果的指數(shù)介于 Float#MIN_EXPONENT 和 Float#MAX_EXPONENT 之間,則答案是精確計算的。 如果結(jié)果的指數(shù)大于 Float.MAX_EXPONENT,則返回無窮大。 請注意,如果結(jié)果不正常,則可能會丟失精度; 也就是說,當 scalb(x, n) 為次正規(guī)時, scalb(scalb(x, n), -n) 可能不等于 x。 當結(jié)果為非 NaN 時,結(jié)果的符號與 f 相同。
特別情況:
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
f | 要按 2 的冪進行縮放的數(shù)字。 |
scaleFactor | 用于縮放 f 的 2 的冪 |
返回:
f × 2scaleFactor
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: