|
FPGETROUND(3C)НАЗВАНИЕ СИНТАКСИС #include <ieeefp.h> typedef enum fp_rnd { FP_RN = 0, /* округление до ближайшего */ FP_RP = 1, /* округление до большего */ FP_RM = 2, /* округление до меньшего */ FP_RZ = 3 /* округление до целого */ } fp_rnd; fp_rnd fpsetround ( ); fp_rnd fpsetround (rnd_dir) fp_rnd rnd_dir; #define fp_exept int #define FP_X_INV 0x10 /* некорректная операция */ #define FP_X_OFL 0x08 /* переполнение */ #define FP_X_UFL 0x04 /* потеря значимости */ #define FP_X_DZ 0x02 /* деление на нуль */ #define FP_X_IMP 0x01 /* потеря точности */ fp_exept fpgetmask ( ); fp_exept fpsetmask (mask); fp_exept mask; fp_exept fpgetsticky ( ); fp_exept fpsetsticky (sticky); fp_exept sticky; ОПИСАНИЕ Функция fpgetround( ) возвращает текущий режим округления. Функция fpsetround( ) устанавливает новый режим округления и возвращает предыдущий режим. Функция fpgetmask( ) возвращает текущую маску для обработки исключительных ситуаций. Функция fpsetmask( ) устанавливает новую маску и возвращает предыдущее значение маски. Функция fpgetsticky( ) возвращает текущие значения бит навязчивости. Функция fpsetsticky( ) устанавливает (или сбрасывает) биты навязчивости и возвращает предыдущие значения. СМ. ТАКЖЕ ПРЕДОСТЕРЕЖЕНИЯ Для преобразования числа с плавающей точкой в целое в таких языках программирования как C и Фортран-77 необходимо установить режим округления до целого. ОГРАНИЧЕНИЯ Аналогично, перед вызовом fpsetmask( ) необходимо сбросить взведенные биты маски. |
|