scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl
Multiplica un número de punto flotante por una potencia integral de 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 );
Parámetros
x
Valor de punto flotante.exp
Exponente de entero.
Valor devuelto
Si son correctas, las funciones scalbn devuelven el valor de x * FLT_RADIXexp. En caso de desbordamiento, y según cuál sea el signo de x, scalbn devuelve +/– HUGE_VAL; el valor de errno se establece en ERANGE.
Para más información sobre errno y otros posibles valores devueltos erróneos, vea errno, _doserrno, _sys_errlist y _sys_nerr.
Comentarios
FLT_RADIX se define en <float.h> como la base de punto flotante nativa; en los sistemas binarios, tiene un valor de 2, mientras que scalbn equivale a ldexp.
Como C++ permite las sobrecargas, puede llamar a las sobrecargas de scalbn y scalbln, que toman y devuelven los tipos float o long double. En un programa C, scalbn siempre toma un double y un int y devuelve un double, mientras que scalbln siempre toma un double y un long y devuelve un double.
Requisitos
Función |
Encabezado C |
Encabezado C++ |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
Para obtener información adicional de compatibilidad, vea Compatibilidad.
Ejemplo
// 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 );
}
Salida
6.4 times FLT_RADIX to the power of 3 is 51.2