PDA

View Full Version : گرد کردن عدد



زهره صالحی
چهارشنبه 01 دی 1389, 14:02 عصر
با سلام

تابعی وجود دارد که مقدار اعشاری 1.67893 را به 1.6 تبدیل کند . در ++C است نه در #C.

نوشتن تابعی که این کار را انجام دهد برام سخت نیست و هدف تبدیل مقدار 1.67893 به 1.6 در حافظه است .

ممنون

mehdi.mousavi
چهارشنبه 01 دی 1389, 14:18 عصر
با سلام تابعی وجود دارد که مقدار اعشاری 1.67893 را به 1.6 تبدیل کند . در ++C است نه در #C. ممنون

سلام.
می تونید به این شکل عمل کنید:


float f = floor(1.67893f * 10.f) / 10.f;البته بسته به شرایط، می تونید از printf، ceil و ... نیز استفاده کنید.

موفق باشید.

زهره صالحی
چهارشنبه 01 دی 1389, 15:30 عصر
:تشویق:
اول در 10 ضرب می کنیم بعد floor می گیریم در نهایت بر 10 تقسیم می کنیم .
گذاشتن این f ها برای چیه ؟‌




float f = floor(1.67893f * 10.f) / 10.f;


در صورتی که بدون اینها باز هم نتیجه یکیه .


float f = floor(1.67893*10)/10;


ممنون

mehdi.mousavi
پنج شنبه 02 دی 1389, 11:31 صبح
:تشویق: گذاشتن این f ها برای چیه ؟‌ در صورتی که بدون اینها باز هم نتیجه یکیه . ممنون

سلام.
اعداد اعشاری بصورت پیش فرض، double در نظر گرفته میشن. آوردن f بعد عدد، باعث میشه که اون عدد float در نظر گرفته بشه (مثل این میمونه که اون عدد رو به float کست کرده باشم). به همین ترتیب، آوردن l (یا L بزرگ) باعث میشه اون عدد، long double در نظر گرفته بشه. ما بعنوان یه برنامه نویس خوب، باید همیشه انتظار "غیر منتظره ها" رو داشته باشیم. آوردن اون f باعث میشه تا اگر فردا مایکروسافت به هر دلیلی اون پیش فرض ها رو تغییر داد، کدم باز هم بر اساس انتظار کار کنه...

موفق باشید.