Поддержка чисел с плавающей запятой
Многие функции библиотеки времени выполнения (Майкрософт) требуют, чтобы числа с плавающей запятой поддерживались математическим сопроцессором или библиотеками чисел с плавающей запятой компьютера. Функции для поддержки чисел с плавающей запятой загружаются только при необходимости.
При использовании описателя типа с плавающей запятой в строке формата вызова функции в семействе printf или scanf необходимо указать значение с плавающей запятой или указатель на такое значение в списке аргументов, чтобы уведомить компилятор о необходимости поддержки чисел с плавающей запятой.
Примеры кода, демонстрирующие обработку исключений чисел с плавающей запятой, см. в разделе _fpieee_flt.
Точность вычислений с плавающей запятой для промежуточных значений контролируется функциями _control87, _controlfp, __control87_2. По умолчанию для элемента управления точностью _controlfp задано значение 53 бита (_PC_53). Связывание с помощью FP10.OBJ заменяет значение по умолчанию значением 64 бита (_PC_64). В командной строке компоновщика FP10.OBJ должен стоять перед LIBC.LIB, LIBCMT.LIB или MSVCRT.LIB.
Функции с плавающей запятой
Подпрограмма |
Применение |
Эквивалент .NET Framework |
---|---|---|
Возвращение абсолютного значения int |
||
Вычисление арккосинуса |
||
Вычисление арксинуса |
||
Вычисление арктангенса |
||
Преобразование строки символов в значение двойной точности с плавающей запятой |
||
Вычисление функций Бесселя _j0, _j1, _jn, _y0, _y1, _yn |
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода. |
|
Нахождение абсолютного значения сложного числа |
Неприменимо. |
|
Вычисление кубического корня |
Неприменимо. |
|
Нахождение верхней целой части целого числа |
||
Изменение знака числа двойной точности с плавающей запятой или аргумента числа двойной точности с плавающей запятой long double |
Неприменимо. |
|
Получение и сброс слова состояния числа с плавающей запятой |
Неприменимо. |
|
Получение старого управляющего слова числа с плавающей запятой и задание нового значения управляющего слова |
Неприменимо. |
|
copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl |
Возвращение одного значения со знаком другого |
Неприменимо. |
Вычисление косинуса |
||
Вычисление разницы между двумя указанными значениями времени |
||
Деление одного целого числа на другое, возврат частного и остатка |
Неприменимо. |
|
Преобразование double в строку символов указанной длины |
||
Вычисление экспоненциальной функции |
||
Нахождение абсолютного значения |
||
Преобразование double в строку, имеющую заданное число цифр дробной части |
||
Определение конечности данного числа двойной точности с плавающей запятой |
||
Нахождение самого большого целого числа, которое меньше или равно аргументу |
||
Нахождение остатка с плавающей запятой |
||
Возвращение слова состояния, которое содержит сведения о классе чисел с плавающей запятой |
System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan |
|
Вызов обработчика исключений и прерываний для исключений с плавающей запятой IEEE |
Неприменимо. |
|
Повторная инициализация математического пакета с плавающей запятой |
|
|
Вычисление экспоненциального значения |
Неприменимо. |
|
Преобразование числа с плавающей запятой в строку символов |
||
Вычисление гипотенузы правильного треугольника |
Неприменимо. |
|
Проверка того, что данное значение двойной точности с плавающей запятой не является числом (NaN) |
||
Возвращение абсолютного значения long |
||
Вычисление произведения аргумента и 2exp (указанная степень) |
||
Деление одного целого числа long на другое, возврат частного и остатка |
Неприменимо. |
|
Вычисление натурального логарифма или логарифма по основанию 10 |
||
Извлечение экспоненциального значения аргумента числа двойной точности с плавающей запятой |
Неприменимо. |
|
Сдвиг unsigned long int влево (_lrotl) или вправо (_lrotr) |
Неприменимо. |
|
Обработка математических ошибок |
Неприменимо. |
|
Возвращение большего из двух значений |
||
Возвращение меньшего из двух значений |
||
Разбиение аргумента на целую и дробную части |
Неприменимо. |
|
Возвращение несигнального значения NaN (QNaN) |
||
Возвращение следующего представимого соседнего числа |
Неприменимо. |
|
Вычисление значения, возведенного в степень |
||
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
Запись данных в stdout согласно указанному формату |
|
Получение псевдослучайного числа |
||
Округление до ближайшего целого числа в формате с плавающей запятой |
||
Сдвиг unsigned int влево (_rotl) или вправо (_rotr) |
Неприменимо. |
|
Масштабирование по степеням числа 2 |
Неприменимо. |
|
Умножение на целую степень числа FLT_RADIX |
Неприменимо. |
|
Чтение данных из stdin согласно указанному формату и запись данных в заданное расположение |
||
Задание нового значения контрольного слова |
Неприменимо. |
|
Вычисление синуса или гиперболического синуса |
||
Нахождение квадратного корня |
||
Инициализация серии псевдослучайных чисел |
||
Получение слова состояния с плавающей запятой |
Неприменимо. |
|
Преобразование строки символов в значение двойной точности |
||
Вычисление тангенса или гиперболического тангенса |