المتغيرات
فضاءات التسمية
أفعال

log10, log10f, log10l

من cppreference.com
< c‏ | numeric‏ | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
(C99)
(C99)
log10
(C99)
(C99)
دوال أسية وجذور
(C99)
(C99)
دوال حساب المثلثات والدول الزائدية
(C99)
(C99)
(C99)
دالة الخطأ ودالة غاوس
(C99)
(C99)
(C99)
(C99)
إيجاد أقرب عدد صحيح لفاصلة عائمة (float)
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
دوال التعديل على الفاصلة العائمة (float)
(C99)(C99)
(C99)
(C99)
التصنيف والمقارنة
(C99)
(C99)
(C99)
ثوابت ماكرو
 
معرفة في ملف <math.h>
float       log10f( float arg );
(1) (منذ C99)
double      log10( double arg );
(2)
long double log10l( long double arg );
(3) (منذ C99)
معرفة في ملف <tgmath.h>
#define log10( arg )
(4) (منذ C99)
1-3) تحسب اللوغاريتم الشائع (أساس 10) للعدد ‎arg‎.
4) ماكرو عام النوع: إذا كان المعطى ‎arg‎ من النوع long double يتم استدعاء ‎log10l‎. أما إذا كان ‎arg‎ عدد صحيح أو من النوع double يتم استدعاء ‎log10‎. فيما عدا ذلك يتم استدعاء ‎log10f‎.

محتويات

[تعديل] المعطيات

arg - عدد ذو فاصلة عائمة

[تعديل] القيمة المُرجعة

في حالة النجاح, تُرجعاللوغاريتم الشائع (أساس 10) للعدد ‎arg‎ (‏‎ ‏‎log
10
(arg)‎
أو lg(arg) ‎ ‎).

لو كان ��ناك خطأ في المجال يتم إرجاع قيمة تحددها البيئة (غالبا NaN على الأنظمة الداعمة لذلك).

في حالة حدوث خطأ قطبي, يتم إرجاع ‎-HUGE_VAL‎ أو ‎-HUGE_VALF‎ أو ‎-HUGE_VALL‎.

[تعديل] التعامل مع الأخطاء

يتم الإبلاغ عن الأخطاء كما هو موضح في math_errhandling.

في حالة كون ‎arg‎ أصغر من الصفر يحدث خطأ في المجال.

إذا كانت ‎arg‎ بصفر, ربما يحدث خطأ قطبي.

  • لو كان المعطى ±0, يتم إرجاع -∞ ويتم رفع الإشارة FE_DIVBYZERO‎.
  • لو كان المعطى 1, يتم إرجاع +0
  • لو كان المعطى سالبا, يتم إرجاع NaN ويتم رفع الإشارة FE_INVALID‎.
  • لو كان المعطى +∞, يتم إرجاع +∞
  • لو كان المعطى NaN, يتم إرجاع NaN

[تعديل] مثال

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("log10(1000) = %f\n", log10(1000));
    printf("log10(0.001) = %f\n", log10(0.001));
    printf("base-5 logarithm of 125 = %f\n", log10(125)/log10(5));
    // special values
    printf("log10(1) = %f\n", log10(1));
    printf("log10(+Inf) = %f\n", log10(INFINITY));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("log10(0) = %f\n", log10(0));
    if(errno == ERANGE) perror("    errno == ERANGE");
    if(fetestexcept(FE_DIVBYZERO)) puts("    FE_DIVBYZERO raised");
}

خرج ممكن:

log10(1000) = 3.000000
log10(0.001) = -3.000000
base-5 logarithm of 125 = 3.000000
log10(1) = 0.000000
log10(+Inf) = inf
log10(0) = -inf
    errno == ERANGE: Numerical result out of range
    FE_DIVBYZERO raised

[تعديل] أنظر أيضا

(C99)(C99)
تحسب اللوغاريتم الطبيعي (الأساس e) ‏‎ (ln(x))‎
(دالة) [edit]
(C99)(C99)(C99)
تحسب اللوغاريتم للأساس 2 ‏‎(log2(x))‎
(دالة) [edit]
(C99)(C99)(C99)
تحسب اللوغاريتم الطبيعي (أساس e) لمجموع العدد المعطى مع الواحد‎ (ln(1+x)) ‎
(دالة) [edit]