|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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_VALUEpublic 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_VALUEpublic 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_VALUEpublic static long abs(long a)
long 值的絕對值。如果參數為非負數,則返回該參數。如果參數為負數,則返回該參數的相反數。
注意,如果參數等於 Long.MIN_VALUE 的值(即能夠表示的最小負 long 值),則結果與該值相同且為負。
a - 要確定絕對值的參數。
Long.MIN_VALUEpublic 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。