sqrt, sqrtf, sqrtl
من cppreference.com
<tbody>
</tbody>
| معرفة في ملف <math.h>
|
||
float sqrtf( float arg ); |
(1) | (منذ C99) |
double sqrt( double arg ); |
(2) | |
long double sqrtl( long double arg ); |
(3) | (منذ C99) |
| معرفة في ملف <tgmath.h>
|
||
#define sqrt( arg ) |
(4) | (منذ C99) |
1-3) تحسب الجذر التربعي للعدد
arg.4) ماكرو عام النوع: إذا كان المعطى
arg من النوع long double يتم استدعاء sqrtl. أما إذا كان arg عدد صحيح أو من النوع double يتم استدعاء sqrt. فيما عدا ذلك يتم استدعاء sqrtf. إذا كان arg عددا مركبا يتم استدعاء الدالة المركبة المناسبة (csqrtf أو csqrt أو csqrtl).المعطيات
| arg | - | عدد ذو فاصلة عائمة |
القيمة المُرجعة
في حالة النجاح, تُرجع الجذر الربيعي للعدد arg (√arg) .
لو كان هناك خطأ في المجال يتم إرجاع قيمة تحددها البيئة (غالبا NaN على الأنظمة الداعمة لذلك).
لو كان هناك خطأ في المدى نتيجة الطفح لأسفل (Underflow) يتم إرجاع القيمة الصحيحة بعد التقريب.
التعامل مع الأخطاء
يتم الإبلاغ عن الأخطاء كما هو موضح في math_errhandling.
في حالة كون arg أصغر من الصفر يحدث خطأ في المجال.
إذا كانت البيئة تدعم حسابات الفاصلة العائمة طبقا للـ IEEE (المعيار IEC 60559 تحديدا):
- لو كان المعطى أصغر من -0, يتم يتم إرجاع NaN ورفع الإشارة FE_INVALID.
- لو كان المعطى +∞ أو ±0, يتم إرجاعه دون تعديل.
- لو كان المعطى NaN يتم إرجاع NaN.
مثال
قم بتشغيل هذا الكود:
#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
// normal use
printf("sqrt(100) = %f\n", sqrt(100));
printf("sqrt(2) = %f\n", sqrt(2));
printf("golden ratio = %f\n", (1+sqrt(5))/2);
// special values
printf("sqrt(-0) = %f\n", sqrt(-0.0));
// error handling
errno = 0; feclearexcept(FE_ALL_EXCEPT);
printf("sqrt(-1.0) = %f\n", sqrt(-1));
if(errno == EDOM) perror(" errno == EDOM");
if(fetestexcept(FE_INVALID)) puts(" FE_INVALID was raised");
}
خرج ممكن:
sqrt(100) = 10.000000
sqrt(2) = 1.414214
golden ratio = 1.618034
sqrt(-0) = -0.000000
sqrt(-1.0) = -nan
errno = EDOM: Numerical argument out of domain
FE_INVALID was raised
أنظر أيضا
(C99)(C99) |
تحسب ناتج رفع عدد لأس ما (xy) (دالة) |
(C99)(C99)(C99) |
تحسب الجذر التكعيبي (3√x) (دالة) |
(C99)(C99)(C99) |
تحسب الجذر التربيعي لمجمع مربعي عددين معينين (√x2 +y2 ) (دالة) |
(C99)(C99)(C99) |
تحسب الجذر التربعيي المركب (دالة) |
مقالة مرجع C++ عن sqrt
| |