English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية C++ الأساسية

تحكم في تدفق C++

وظيفة C++

مجموعات C++ والكلمات المفتاحية

هياكل البيانات في C++

مفاهيم C++ الكلاسات والأجسام

مؤشر C++

الوراثة C++

تعليمية STL C++

دليل مرجع C++

استخدام دالة C++ llrint() ومثال

وظيفة مكتبة <cmath> C++

استخدام دالة llrint() في C ++ مع نمط التبديل الحالي لتحويل المعامل إلى قيمة كاملة.

نمط التبديل الحالي يحدده دالة fesetround(). إنه يشبهlrint()، ولكن يعود long long int وليس long int.

للـ llrint() النموذج [من بداية معيار C ++ 11]

long long int llrint(double x);
long long int llrint(float x);
long long int llrint(long double x);
long long int llrint(T x); // للأعداد الصحيحة

تتخذ وظيفة llrint() معلماً واحدًا وتعيد قيمة من نوع long long int. تعمل هذه الوظيفة في<cmath>محددة في ملف الرأس.

معلمات llrint()

تقوم وظيفة llrint() بتقريب قيمة معلمة واحدة.

قيمة عودة llrint()

تقوم وظيفة llrint() باستخدام اتجاه التقريب المحدد بواسطة fegetround() لتقريب معامل x إلى قيمة عدد صحيح، وتعيد القيمة كـ long long int.

بالافتراض، يُضبط اتجاه التقريب إلى 'أقرب'.

يمكن استخدام وظيفة fesetround() لتغيير اتجاه التقريب إلى قيمة أخرى.

مثال 1: كيف يعمل llrint() في C++؟

#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
    // بالافتراض، يُضبط اتجاه التقريب إلى أقرب
    double x = 11.87;
    long long int result;
    result = llrint(x);
    cout << "التقريب إلى أقرب (" << x << ") = " << result << endl;
    
    // القيمة الوسطى تقريبًا تُضبط إلى عدد صحيح أعلى
    x = 11.5;
    result = llrint(x);
    cout << "التقريب إلى أقرب (" << x << ") = " << result << endl;
    // يُضبط اتجاه التقريب إلى الأسفل
    fesetround(FE_DOWNWARD);
    x = 11.87;
    result = llrint(x);
    cout << "التنازل للأسفل (" << x << ") = " << result << endl;
    
    // يُضبط اتجاه التقريب إلى الأعلى
    fesetround(FE_UPWARD);
    x = 33.32;
    result = llrint(x);
    cout << "التقريب لأعلى (" << x << ") = " << result << endl;
    
    return 0;
}

عند تشغيل البرنامج، الناتج هو:

التقريب إلى أقرب (11.87) = 12
التقريب إلى أقرب (11.5) = 12
التقريب إلى الأسفل (11.8699) = 11
التقريب لأعلى (33.3201) = 34

مثال 2: وظيفة llrint() من نوع العدد الصحيح

#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
    int x = 15;
    long long int result;
    
    //ضبط اتجاه التبديل إلى DOWNWARD
    fesetround(FE_DOWNWARD);
    result = llrint(x);
    cout << "التنازل للأسفل (" << x << ") = " << result << endl;
    return 0;
}

عند تشغيل البرنامج، الناتج هو:

التنازل للأسفل (15) = 15

بالنسبة للقيم الصحيحة، يعيد وظيفة llrint القيمة نفسها. لذلك لا تستخدم عادة لتعريف القيم الصحيحة.

وظيفة مكتبة <cmath> C++