scalbn(), scalbnf()

Умножить число с плавающей точкой на основание, не зависящее от системы счисления, возведенное в заданную степень

Прототип:

#include <math.h>
double scalbn( double x,
int n );
float scalbnf( float x,
int n );

Аргументы:

x
Число с плавающей точкой, которое требуется умножить на экспоненту.
n
Показатель степени, который требуется применить к основанию системы счисления арифметики чисел с плавающей точкой устройства.

Библиотека:

libm

Описание:

Функции scalbn() и scalbnf() вычисляют x × rⁿ, где r является основанием системы счисления арифметики чисел с плавающей точкой устройства.

Возвращаемое значение:

x × rⁿ

Когда корректное знаение вызывает ошибку underflow, эти функции возвращают 0.0.


Note: В случае возникновения ошибки, эти функции возвращают 0, который также может быть и достоверным математическим результатом. Если вам необходимо проверить, возникла ли ошибка, установите errno в 0, вызовите функцию, и затем снова проверьте errno. Эти функции не изменяют errno в случае отсутствия ошибок.

Примеры:

#include <stdio.h>
#include <errno.h>
#include <inttypes.h>
#include <math.h>
#include <fpstatus.h>
int main( void )
{
double a, b, c, d;
a = 10;
b = 2;
c = scalbn( a, b );
d = sqrt( c / a );
printf( "Radix of machines fp arithmetic is %f \n", d );
printf( "So %f = %f * (%f ^ %f) \n", c, a, d, b );
return (0);
}

Код генерирует следующий вывод:

$ ./a.out Radix of machines fp arithmetic is 2.000000 So 40.000000 = 10.000000 * (2.000000 ^ 2.000000)

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

scalb()




Предыдущий раздел: Описание API математической библиотеки