sqrt, sqrtf, sqrtl
من cppreference.com
معرفة في ملف <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
|