scalbn、scalbnf、scalbnl、scalbln、scalblnf、scalblnl
將浮點數與 FLT_RADIX 的整數冪相乘。
double scalbn( double x, int exp ); float scalbn( float x, int exp ); // C++ only long double scalbn( long double x, int exp ); // C++ only float scalbnf( float x, int exp ); long double scalbnl( long double x, int exp ); double scalbln( double x, long exp ); float scalbln( float x, long exp ); // C++ only long double scalbln( long double x, long exp ); // C++ only float scalblnf( float x, long exp ); long double scalblnl( long double x, long exp );
參數
x
浮點值。exp
整數指數。
傳回值
若成功,scalbn 函數會傳回 x * FLT_RADIXexp 的值。 溢位 (根據 x 的符號) 時,scalbn 會傳回 +/– HUGE_VAL;errno 值會設為 ERANGE。
如需有關 errno 和其他可能的錯誤傳回值的詳細資訊,請參閱 errno、_doserrno、_sys_errlist 和 _sys_nerr。
備註
FLT_RADIX 定義在 <float.h> 作為原生浮點基數;在二進位系統中,其具有 2 的值,且 scalbn 相當於 ldexp。
因為 C++ 允許多載,所以您可以呼叫採用並傳回 float 或 long double 類型的 scalbn 和 scalbln 的多載。 在 C 程式中,scalbn 會一律採用 double 及 int,並傳回 double,而 scalbln 會一律採用 double 及 long,並傳回 double。
需求
函式 |
C 標頭 |
C++ 標頭 |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
如需其他相容性資訊,請參閱 相容性。
範例
// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 6.4, y;
int p = 3;
y = scalbn( x, p );
printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}
輸出
6.4 times FLT_RADIX to the power of 3 is 51.2