.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified 1993-07-24 by Rik Faith (faith@cs.unc.edu) .\" Modified 2002-07-27 by Walter Harms .\" (walter.harms@informatik.uni-oldenburg.de) .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fmod 3 "31 октября 2023 г." "Linux man\-pages 6.06" .SH ИМЯ fmod, fmodf, fmodl \- функция получения остатка от деления числа с плавающей запятой .SH LIBRARY Math library (\fIlibm\fP, \fI\-lm\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBdouble fmod(double \fP\fIx\fP\fB, double \fP\fIy\fP\fB);\fP \fBfloat fmodf(float \fP\fIx\fP\fB, float \fP\fIy\fP\fB);\fP \fBlong double fmodl(long double \fP\fIx\fP\fB, long double \fP\fIy\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBfmodf\fP(), \fBfmodl\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH ОПИСАНИЕ Эти функции вычисляют остаток деления числа с плавающей запятой \fIx\fP на \fIy\fP. Возвращаемое значение: \fIx\fP \- \fIn\fP * \fIy\fP, где \fIn\fP — частное \fIx\fP / \fIy\fP, округлённое к нулю до ближайшего целого числа. .P To obtain the modulus, more specifically, the Least Positive Residue, you will need to adjust the result from fmod like so: .P .in +4n .nf z = fmod(x, y); if (z < 0) z += y; .fi .in .P An alternate way to express this is with \fIfmod(fmod(x, y) + y, y)\fP, but the second \fBfmod\fP() usually costs way more than the one branch. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении функции возвращают значение \fIx\fP\ \-\ \fIn\fP*\fIy\fP для некоторого целого \fIn\fP; при этом возвращаемое значение имеет тот же знак что и \fIx\fP, а абсолютное значение меньше абсолютного значения \fIy\fP. .P Если значение \fIx\fP или \fIy\fP равно NaN, будет возвращено NaN. .P Если \fIx\fP стремится к бесконечности, то будет сгенерирована ошибка выхода за пределы области, а в качестве результата будет возвращено NaN. .P Если \fIy\fP равно 0, то будет сгенерирована ошибка выхода за пределы области, а в качестве результата будет возвращено NaN. .P Если \fIx\fP равно +0 (\-0) и \fIy\fP не равно, то возвращается +0 (\-0). .SH ОШИБКИ Смотрите \fBmath_error\fP(7), чтобы определить, какие ошибки могут возникать при вызове этих функций. .P Могут возникать следующие ошибки: .TP Ошибка области: \fIx\fP стремится к бесконечности Значение \fIerrno\fP устанавливается в \fBEDOM\fP (но см. ДЕФЕКТЫ). Возникает исключение неправильной плавающей запятой (\fBFE_INVALID\fP). .TP Ошибка области: \fIy\fP равно 0 .\" POSIX.1 documents an optional underflow error, but AFAICT it doesn't .\" (can't?) occur -- mtk, Jul 2008 \fIerrno\fP устанавливается в \fBEDOM\fP. Вызывается исключение неправильной плавающей точки (\fBFE_INVALID\fP). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBfmod\fP(), \fBfmodf\fP(), \fBfmodl\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ C99, POSIX.1\-2001. .P Вариант, возвращающий значение типа \fIdouble\fP, также соответствует SVr4, 4.3BSD, C89. .SH ДЕФЕКТЫ .\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6784 Before glibc 2.10, the glibc implementation did not set \fIerrno\fP to \fBEDOM\fP when a domain error occurred for an infinite \fIx\fP. .SH ПРИМЕРЫ The call \fIfmod(372, 360)\fP returns 348. .P The call \fIfmod(\-372, 360)\fP returns \-12. .P The call \fIfmod(\-372, \-360)\fP also returns \-12. .SH "СМ. ТАКЖЕ" \fBremainder\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .