.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" This was done with the help of the glibc manual. .\" .\" 2004-10-31, aeb, corrected .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fpclassify 3 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ fpclassify, isfinite, isnormal, isnan, isinf \- макросы классификации чисел с плавающей запятой .SH БИБЛИОТЕКА Математическая библиотека (\fIlibm\fP, \fI\-lm\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBint fpclassify(\fP\fIx\fP\fB);\fP \fBint isfinite(\fP\fIx\fP\fB);\fP \fBint isnormal(\fP\fIx\fP\fB);\fP \fBint isnan(\fP\fIx\fP\fB);\fP \fBint isinf(\fP\fIx\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P .\" I haven't fully grokked the source to determine the FTM requirements; .\" in part, the following has been tested by experiment. \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L .fi .P \fBisnan\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE || /* Начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .P \fBisinf\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH ОПИСАНИЕ У чисел с плавающей запятой есть специальные значения, например для бесконечности или NaN. С помощью макроса \fBfpclassify(\fP\fIx\fP\fB)\fP вы можете выяснить тип \fIx\fP. В качестве аргумента макрос принимает любое выражение с плавающей запятой. Результатом будет одно из следующих значений: .TP 14 \fBFP_NAN\fP Значение \fIx\fP не является числом («Not a Number»). .TP \fBFP_INFINITE\fP Значение \fIx\fP стремится к плюс или минус бесконечности. .TP \fBFP_ZERO\fP Значение \fIx\fP равно нулю. .TP \fBFP_SUBNORMAL\fP Значение \fIx\fP слишком мало для представления в нормализованном формате. .TP \fBFP_NORMAL\fP Если значение не равно ни одному из вышеперечисленных, то это обычное число с плавающей запятой. .P Остальные макросы предоставляют короткие ответы на некоторые стандартные вопросы. .TP 14 \fBisfinite(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если .br (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) .TP \fBisnormal(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если (fpclassify(x) == FP_NORMAL) .TP \fBisnan(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если (fpclassify(x) == FP_NAN) .TP \fBisinf(\fP\fIx\fP\fB)\fP возвращает 1, если \fIx\fP равно положительной бесконечности и \-1, если \fIx\fP равно отрицательной бесконечности. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(), \fBisnan\fP(), \fBisinf\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, C99. .P В glibc 2.01 и более ранних \fBisinf\fP() возвращает ненулевое значение (а именно 1), если \fIx\fP равно положительной или отрицательной бесконечности (это всё, что требует C99). .SH ПРИМЕЧАНИЯ Про \fBisinf\fP() в стандартах лишь сказано, что этот макрос возвращает ненулевое значение, если только аргумент равен бесконечности. .SH "СМОТРИТЕ ТАКЖЕ" \fBfinite\fP(3), \fBINFINITY\fP(3), \fBisgreater\fP(3), \fBsignbit\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .