|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.Math
public final class Math
Math
類別包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
與 StrictMath
類別的某些數學方法不同,並非 Math
類別所有等價函數的實作都定義為返回逐位相同的結果。此類別在不需要嚴格重複的地方可以得到更好的執行。
預設情況下,很多 Math
方法僅調用 StrictMath
中的等價方法來完成它們的實作。建議程式碼產生器使用特定於平臺的本機資源庫或者微處理器指令(可用時)來提供 Math
方法更高性能的實作。這種更高性能的實作仍然必須遵守 Math
的規範。
實作規範的質量涉及到兩種屬性,即返回結果的準確性和方法的單調性。浮點 Math
方法的準確性根據 ulp(units in the last place,最後一位的進退位)來衡量。對於給定的浮點格式,特定實數值的 ulp 是包括該數值的兩個浮點值的差。當作為一個整體而不是針對具體參數討論方法的準確性時,引入的 ulp 數用於任何參數最差情況下的誤差。如果一個方法的誤差總是小於 0.5 ulp,那麼該方法始終返回最接近準確結果的浮點數;這種方法就是正確捨入。一個正確捨入的方法通常能得到最佳的浮點近似值;然而,對於許多浮點方法,進行正確捨入有些不切實際。相反,對於 Math
類別,某些方法允許誤差在 1 或 2 ulp 的範圍內。非正式地,對於 1 ulp 的誤差範圍,當準確結果是可表示的數值時,應該按照計算結果返回準確結果;否則,返回包括準確結果的兩個浮點值中的一個。對於值很大的準確結果,括號的一端可以是無窮大。除了個別參數的準確性之外,維護不同參數的方法之間的正確關係也很重要。因此,大多數誤差大於 0.5 ulp 的方法都要求是半單調的:只要數學函數是非遞減的,浮點近似值就是非遞減的;同樣,只要數學函數是非遞增的,浮點近似值就是非遞增的。並非所有準確性為 1 ulp 的近似值都能自動滿足單調性要求。
欄位摘要 | |
---|---|
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 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)
返回帶有第二個浮點參數符號的第一個浮點參數。 |
static float |
copySign(float magnitude,
float sign)
返回帶有第二個浮點參數符號的第一個浮點參數。 |
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 |
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 標準的規定,對兩個參數進行餘數運算。 |
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)
返回兩個 double 值中較大的一個。 |
static float |
max(float a,
float b)
返回兩個 float 值中較大的一個。 |
static int |
max(int a,
int b)
返回兩個 int 值中較大的一個。 |
static long |
max(long a,
long b)
返回兩個 long 值中較大的一個。 |
static double |
min(double a,
double b)
返回兩個 double 值中較小的一個。 |
static float |
min(float a,
float b)
返回兩個 float 值中較小的一個。 |
static int |
min(int a,
int b)
返回兩個 int 值中較小的一個。 |
static long |
min(long a,
long b)
返回兩個 long 值中較小的一個。 |
static double |
nextAfter(double start,
double direction)
返回第一個參數和第二個參數之間與第一個參數相鄰的浮點數。 |
static float |
nextAfter(float start,
double direction)
返回第一個參數和第二個參數之間與第一個參數相鄰的浮點數。 |
static double |
nextUp(double d)
返回 d 和正無窮大之間與 d 相鄰的浮點值。 |
static float |
nextUp(float f)
返回 f 和正無窮大之間與 f 相鄰的浮點值。 |
static double |
pow(double a,
double b)
返回第一個參數的第二個參數次方的值。 |
static double |
random()
返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0 。 |
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)
返回 d ×
2scaleFactor ,其捨入方式如同將一個正確捨入的浮點值乘以 double 值集合中的一個值。 |
static float |
scalb(float f,
int scaleFactor)
返回 f ×
2scaleFactor ,其捨入方式如同將一個正確捨入的浮點值乘以 float 值集合中的一個值。 |
static double |
signum(double d)
返回參數的符號函數;如果參數為 0,則返回 0;如果參數大於 0,則返回 1.0;如果參數小於 0,則返回 -1.0。 |
static float |
signum(float f)
返回參數的符號函數;如果參數為 0,則返回 0;如果參數大於 0,則返回 1.0;如果參數小於 0,則返回 -1.0。 |
static double |
sin(double a)
返回角的三角正弦。 |
static double |
sinh(double x)
返回 double 值的雙曲線正弦。 |
static double |
sqrt(double a)
返回正確捨入的 double 值的正平方根。 |
static double |
tan(double a)
返回角的三角正切。 |
static double |
tanh(double x)
返回 double 值的雙曲線餘弦。 |
static double |
toDegrees(double angrad)
將用弧度表示的角轉換為近似相等的用角度表示的角。 |
static double |
toRadians(double angdeg)
將用角度表示的角轉換為近似相等的用弧度表示的角。 |
static double |
ulp(double d)
返回參數的 ulp 大小。 |
static float |
ulp(float f)
返回參數的 ulp 大小。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
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
- 用角度表示的角
angrad
用弧度表示的值。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 或小於 0,那麼結果為 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
,那麼 n 是其中的偶數。如果餘數是 0,那麼它的符號與第一個參數的符號相同。特殊情況如下:
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
值。如果兩個同為整數的 double
值都同樣接近,那麼結果取偶數。特殊情況如下:
a
- double
值。
a
的整數浮點值。public static double atan2(double y, double x)
x
, y
) 轉換成極坐標 (r, theta),返回所得角 theta。該方法通過計算 y/x
的反正切值來計算相角 theta,範圍為從 -pi 到 pi。特殊情況如下:
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。計算結果必須在準確結果的 2 ulp 範圍內。結果必須具有半單調性。
y
- 縱坐標x
- 橫坐標
public static double pow(double a, double b)
double
值,那麼該結果恰好等於第一個參數的第二個參數次方的算術結果。(在前面的描述中,當且僅當浮點數為有限值並且是方法 ceil
的定點數,或者是方法 floor
的定點數時,才可以認為浮點值是整數。當且僅當將某個單參數方法應用到某個值的結果等於該值時,該值才是這個方法的定點值。)
計算結果必須在準確結果的 1 ulp 範圍內。結果必須具有半單調性。
a
- 底數。b
- 指數。
ab
。public static int round(float a)
int
。結果將捨入為整數:加上 1/2,對結果調用 floor 並將所得結果強制轉換為 int
型別。換句話說,結果等於以下表達式的值:
(int)Math.floor(a + 0.5f)
特殊情況如下:
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
。結果將捨入為整數:加上 1/2,對結果調用 floor 並將所得結果強制轉換為 long
型別。換句話說,結果等於以下表達式的值:
(long)Math.floor(a + 0.5d)
特殊情況如下:
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()
double
值,該值大於等於 0.0
且小於 1.0
。返回值是一個偽隨機(亂數) 選擇的數,在該範圍內(近似)均勻分佈。
第一次調用該方法時,它將創建一個新的偽隨機數(亂數)產生器,與以下表達式完全相同
之後,新的偽隨機數(亂數)產生器可用於此方法的所有調用,但不能用於其他地方。new java.util.Random
此方法是完全同步的,可允許多個執行緒使用而不出現錯誤。但是,如果許多執行緒需要以極高的速率產生偽隨機數(亂數),那麼這可能會減少每個執行緒對擁有自己偽隨機數(亂數)產生器的爭用。
0.0
且小於 1.0
的偽隨機(亂數) double
值。Random.nextDouble()
public static int abs(int a)
int
值的絕對值。如果參數為非負數,則返回該參數。如果參數為負數,則返回該參數的相反數。
注意,如果參數等於 Integer.MIN_VALUE
的值(即能夠表示的最小負 int
值),那麼結果與該值相同且為負。
a
- 要確定絕對值的參數。
Integer.MIN_VALUE
public static long abs(long a)
long
值的絕對值。如果參數為非負數,則返回該參數。如果參數為負數,則返回該參數的相反數。
注意,如果參數等於 Long.MIN_VALUE
的值(即能夠表示的最小負 long
值),則結果與該值相同且為負。
a
- 要確定絕對值的參數。
Long.MIN_VALUE
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
中的較大者。Long.MAX_VALUE
public static long max(long a, long b)
long
值中較大的一個。也就是說,結果為更接近 Long.MAX_VALUE
值的參數。如果參數值相同,那麼結果也是同一個值。
a
- 參數。b
- 另一個參數。
a
和 b
中的較大者。Long.MAX_VALUE
public static float max(float a, float b)
float
值中較大的一個。也就是說,結果為更接近正無窮大的參數。如果參數值相同,那麼結果也是同一個值。如果任一值為 NaN,那麼結果為 NaN。與數值比較運算不同,此方法認為負 0 嚴格小於正 0。如果一個參數為正 0,另一個參數為負 0,那麼結果為正 0。
a
- 參數。b
- 另一個參數。
a
和 b
中的較大者。public static double max(double a, double b)
double
值中較大的一個。也就是說,結果為更接近正無窮大的參數。如果參數值相同,那麼結果也是同一個值。如果任一值為 NaN,那麼結果為 NaN。與數值比較運算不同,該方法認為負 0 嚴格小於正 0。如果一個參數為正 0,另一個參數為負 0,那麼結果為正 0。
a
- 參數。b
- 另一個參數。
a
和 b
中的較大者。public static int min(int a, int b)
int
值中較小的一個。也就是說,結果為更接近 Integer.MIN_VALUE
值的參數。如果參數值相同,那麼結果也是同一個值。
a
- 參數。b
- 另一個參數。
a
和 b
中的較小者。Long.MIN_VALUE
public static long min(long a, long b)
long
值中較小的一個。也就是說,結果為更接近 Long.MIN_VALUE
值的參數。如果參數值相同,那麼結果也是同一個值。
a
- 參數。b
- 另一個參數。
a
和 b
中的較小者。Long.MIN_VALUE
public static float min(float a, float b)
float
值中較小的一個。也就是說,結果為更接近負無窮大的值。如果參數值相同,那麼結果也是同一個值。如果任一值為 NaN,那麼結果為 NaN。與數值比較運算不同,該方法認為負 0 嚴格小於正 0。如果一個參數為正 0,另一個參數為負 0,那麼結果為負 0。
a
- 參數。b
- 另一個參數。
a
和 b
中的較小者。public static double min(double a, double b)
double
值中較小的一個。也就是說,結果為更接近負無窮大的值。如果參數值相同,那麼結果也是同一個值。如果任一值為 NaN,那麼結果為 NaN。與數值比較運算不同,該方法認為負 0 嚴格小於正 0。如果一個參數為正 0,另一個參數為負 0,那麼結果為負 0。
a
- 參數。b
- 另一個參數。
a
和 b
中的較小者。public static double ulp(double d)
double
值的 ulp 是此浮點值與下一個數值較大的 double
值之間的正距離。注意,對於非 NaN x,ulp(-x) == ulp(x)
。
特殊情況如下:
Double.MIN_VALUE
。
Double.MAX_VALUE
,那麼結果等於 2971。
d
- 要返回 ulp 的浮點值
public static float ulp(float f)
float
值的 ulp 是該浮點值與下一個數值較大的 float
值之間的正距離。注意,對於非 NaN x,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。注意,一旦準確的 tanh 結果在極限值 ±1 的 1/2 ulp 內,則應該返回有正確符號的 ±1.0
。
x
- 要返回其雙曲線正切的數字。
x
的雙曲線正切。public static double hypot(double x, double y)
特殊情況如下:
計算結果必須在準確結果的 1 ulp 範圍內。如果一個參數保持常數,那麼在另一個參數中,結果必須具有半單調性。
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 參數視為正,將另一些視為負,以獲得更好的性能。
magnitude
- 提供結果數值的參數sign
- 提供結果符號的參數
magnitude
的數值,sign
的符號。public static float copySign(float magnitude, float sign)
StrictMath.copySign
方法不同,此方法不要求將 NaN sign
參數視為正值;允許實作將某些 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
小的數值,那麼將返回 0,並帶有與 start
相同的符號。
start
為無窮大,而 direction
的值要求結果為一個比 start
小的數值,則返回 Double.MAX_VALUE
,並帶有與 start
相同的符號。
start
等於 ±Double.MAX_VALUE
,而 direction
的值要求結果為一個比 start
大的數值,則返回無窮大,並帶有與 start
相同的符號。
start
- 起始浮點值。direction
- 一個值,指示應返回 start
的某個鄰數還是 start
。
start
和 direction
之間與 start
相鄰的浮點數。public static float nextAfter(float start, double direction)
特殊情況如下:
direction
的值。
start
為 ±Float.MIN_VALUE
,而 direction
的值要求結果為一個比 start
小的數值,那麼將返回 0,並帶有與 start
相同的符號。
start
為無窮大,而 direction
的值要求結果為一個比 start
小的數值,則返回 Float.MAX_VALUE
,並帶有與 start
相同的符號。
start
等於 ±Float.MAX_VALUE
,而 direction
的值要求結果為一個比 start
大的數值,則返回無窮大,並帶有與 start
相同的符號。
start
- 起始浮點值。direction
- 一個值,指示應返回 start
的某個鄰數還是 start
。
start
和 direction
之間與 start
相鄰的浮點數。public static double nextUp(double d)
d
和正無窮大之間與 d
相鄰的浮點值。此方法在語義上等同於 nextAfter(d, Double.POSITIVE_INFINITY)
;但是,nextUp
實作的返回速度可能比其等價 nextAfter
調用快。
特殊情況如下:
Double.MIN_VALUE
。
d
- 起始浮點值。
public static float nextUp(float f)
f
和正無窮大之間與 f
相鄰的浮點值。此方法在語義上等同於 nextAfter(f, Float.POSITIVE_INFINITY)
;但是,nextUp
實作的返回速度可能比其等價 nextAfter
調用快。
特殊情況如下:
Float.MIN_VALUE
f
- 起始浮點值
public static double scalb(double d, int scaleFactor)
d
×
2scaleFactor
,其捨入方式如同將一個正確捨入的浮點值乘以 double 值集合中的一個值。有關浮點值集合的討論,請參閱 Java 語言規範。如果結果的指數在 Double.MIN_EXPONENT
和 Double.MAX_EXPONENT
之間,則可以正確地計算答案;如果結果的指數大於 Double.MAX_EXPONENT
,則返回無窮大。注意,如果結果為 subnormal,則可能丟失精度;也就是說,scalb(x, n)
為 subnormal 時,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
,其捨入方式如同將一個正確捨入的浮點值乘以 float 值集合中的一個值。有關浮點值集合的討論,請參閱 Java 語言規範。如果結果的指數在 Float.MIN_EXPONENT
和 Float.MAX_EXPONENT
之間,則可以正確地計算答案;如果結果的指數大於 Float.MAX_EXPONENT
,則返回無窮大。注意,如果結果為 subnormal,則可能丟失精度;也就是說,scalb(x, n)
為 subnormal 時,scalb(scalb(x, n), -n)
可能不等於 x。結果為非 NaN 時,結果的符號將與 f
相同。
特殊情況如下:
f
- 要使用 2 的次方縮放的數。scaleFactor
- 用來縮放 f
的 2 的次方
f
× 2scaleFactor
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。