Scroll to navigation

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);

متطلبات ماكروات اختبار الميزات لـ 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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

8 فبراير 2026 صفحات دليل لينكس 6.18