چطوری میشه با یه قطعه کد دقت محاسبه با float و double رو حساب کرد؟
double a=1; double at; float b=1; float bt; while(a!=0) { at=a; a/=2; } while(b!=0) { bt=b; b/=2; }
دقت عدد اعشاری برای عددهای مختلف فرق داره. مثلاً برای عدد بین ۱۰ و ۲۰ دقت با عدد بین ۱۰۰ و ۲۰۰ فرق داره فکر کنم.
اینو نمیدونستم. راهی برای محاسبه این دقت برای اعداد (مثلا سه رقمی یا اعداد دو رقمی) در نظر دارید؟
میتوان کد را به صورت زیر تغییر داد که دقت double و floatنزدیک به یک عدد مثلا ۱۵۰ را محاسبه کند. در نهایت مقدار at-150 دقت double و مقدار bt-150 دقت float است.
double a=1+150; double at; float b=1+150; float bt; while(a!=150) { at=a; a=(a+150)/2; } while(b!=150) { bt=b; b = (b + 150)/2; }
دو متغیر at و bt در این کد هیچ کاربردی ندارن که. در صورتی که حذف بشن هم کد همون کده!
at
bt