| fmod(3) | Library Functions Manual | 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);
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.
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |