اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

مقایسه‌ی دو مقدار اعشاری در برنامه

+1 امتیاز
154 نمایش

به دلیل تقریبی بودن اعداد اعشاری در C++ گاهی لازم می‌شه به جای تساوی دقیق از تفاضل کوچیک استفاده کنیم. مثلاً

float f1, f2;
cin>>f1>>f2;
if(f1-f2 < epsilon) ...

سوال. حالا مقدار epsilon چند باشه که برای همه‌ی اعداد اعشاری جواب بده؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده چهارشنبه ۷ فروردین ۱۳۹۲ در C++ توسط prodo  
بازتگ شده چهارشنبه ۱۶ مرداد ۱۳۹۲ توسط prodo

1 پاسخ

0 امتیاز

در سر فایل limits تابعی وجود داره به اسم epsilon() که می‌شه دقیقاً به همین شکل ازش استفاده کرد.

numeric_limits<float>::epsilon()
numeric_limits<double>::epsilon()
numeric_limits<long double>::epsilon()

این سه مقدار برای مقایسه‌ی اعداد اعشاری float، double و long double به کار می‌روند.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده سه شنبه ۱۰ اردیبهشت ۱۳۹۲ توسط prodo