fmod(3)

الاسم
fmod، fmodf، fmodl - دالة باقي القسمة للفاصلة العائمة

المكتبة
مكتبة الرياضيات (libm، -lm)

موجز
#include <math.h>

double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

fmodf()، fmodl():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
        || /* Since glibc 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

الوصف
تحسب هذه الدوال باقي القسمة للفاصلة العائمة لقسمة x على y. قيمة الإرجاع هي x - n * y، حيث n هو خارج قسمة x / y، مقربًا نحو الصفر إلى عدد صحيح.

للحصول على المعامل، وبشكل أكثر تحديدًا، الباقي الموجب الأصغر، ستحتاج إلى ضبط النتيجة من fmod() كما يلي:

z = fmod(x, y);
if (z < 0)
	z += fabs(y);

طريقة بديلة للتعبير عن ذلك هي باستخدام fmod(fmod(x, y) + y, y)، لكن fmod() الثانية عادةً ما تكلف أكثر بكثير من الفرع الواحد.

قيمة الإرجاع
عند النجاح، تُرجع هذه الدوال القيمة x - n*y، لعدد صحيح ما n، بحيث تكون للإشارة نفس إشارة x وقيمة مطلقة أقل من القيمة المطلقة لـ y.

إذا كان x أو y هو NaN، فسيُعاد NaN.

إذا كان x لا نهائيًا، يحدث خطأ نطاق، وتُعاد قيمة NaN.

إذا كان y صفرًا، يحدث خطأ نطاق، وتُعاد قيمة NaN.

إذا كان x هو +0 (-0)، و y ليس صفرًا، يُعاد +0 (-0).

الأخطاء
انظر math_error(7) لمعلومات حول كيفية تحديد ما إذا كان قد حدث خطأ عند استدعاء هذه الدوال.

الأخطاء التالية يمكن أن تحدث:

خطأ في النطاق: x هي ما لا نهاية
    يُضبط errno على EDOM (لكن راجع BUGS). ويُثار استثناء نقطة عائمة غير صالح (FE_INVALID).

خطأ في النطاق: y هو صفر
    تُضبط errno على EDOM. وُيرفع استثناء نقطة عائمة غير صالح (FE_INVALID).

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
fmod(), fmodf(), fmodl() | سلامة الخيوط | MT-Safe

المعايير
C11, POSIX.1-2008.

التاريخ
C99، POSIX.1-2001.

النسخة التي تُعيد double تتوافق أيضًا مع SVr4، و 4.3BSD، و C89.

العلل
قبل glibc 2.10، لم يضبط تطبيق glibc errno إلى EDOM عند حدوث خطأ نطاق لـ x لا نهائي.

أمثلة
الاستدعاء fmod(372, 360) يُرجع 12.

الاستدعاء fmod(-372, 360) يُرجع -12.

الاستدعاء fmod(-372, -360) يُرجع أيضًا -12.

انظر أيضًا
remainder(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.