PDA

View Full Version : میشه یک توضیحی درباره نحوه کارکرد این کد بدید؟!!!



Beginner Programmer
پنج شنبه 26 اردیبهشت 1392, 16:36 عصر
میشه درباره این کد دوستان یک توضیحی بدن؟واقعا گیج شدم:متعجب::گریه:


کد PHP:

printf("%.2f",75.748);//output=75.75
printf("%.2f",52.256);//output=52.26




مگر خروجی کدهای بالا نباید برابر 75.74 & 52.25 بشه؟ یعنی من فقط بهش گفتم دورقم اعشار جدا کن نه اینکه 1 واحد هم بهش اضافه کن.
جالبه فقط زمانی که میخوام دورقم اعشار جدا کنم این مشکل پیش میاد!!!

eshpilen
پنج شنبه 26 اردیبهشت 1392, 19:15 عصر
ظاهرا گرد کرده.

mahmod2000
پنج شنبه 26 اردیبهشت 1392, 22:00 عصر
بله به قول دوستمون : به بالاترین یا پایینترین عدد واستون گرد میکنه و خروجی میده..
میتونید اعشار بیشتر ازش بگیرید با این کد

Beginner Programmer
پنج شنبه 26 اردیبهشت 1392, 22:27 عصر
میشه درباره این گرد کردن بیشر توضیح بدین؟من هر چی فکر میکنم نمیفهمم چطوری گردش میکنه؟:گیج:

mahmod2000
پنج شنبه 26 اردیبهشت 1392, 22:36 عصر
ببینید این کد هر عددی بهش بدین تا 2 اعشار به شما خروجی میده
الان این عدد رو ببینید
این عدد 75.748 شده = 75.75 درسته؟ یعنی 2 تا اضافه کرده به 8 که شده 75
این اومده اون 8 آخری رو واستون "تقریبی" کرده که دوتا اعشار بهتون برگردونه

Beginner Programmer
پنج شنبه 26 اردیبهشت 1392, 22:37 عصر
خودم پیدا کردم دوستان:به بالا ترین عدد گرد میکنه بازم ممنون از پاسخ گوییتون:چشمک:

mahmod2000
پنج شنبه 26 اردیبهشت 1392, 22:43 عصر
حالا شما عدد 75.744 رو بزنید ببینید خروجی چی میده
احتمالا باید 75.74 بهتون برگردونه
چون این کد به آخرین عدد نگاه میکنه
اگه 1 تا 4 باشه به عدد پایین گرد میکنه
از 5 تا 9 به عدد بالا گرد میکنه

H:Shojaei
پنج شنبه 26 اردیبهشت 1392, 22:48 عصر
دوستان اعداد اعشاري به نزديك ترين عدد نسبت به خودشون گرد ميشن.

Beginner Programmer
پنج شنبه 26 اردیبهشت 1392, 23:10 عصر
حالا شما عدد 75.744 رو بزنید ببینید خروجی چی میده
احتمالا باید 75.74 بهتون برگردونه
چون این کد به آخرین عدد نگاه میکنه
اگه 1 تا 4 باشه به عدد پایین گرد میکنه
از 5 تا 9 به عدد بالا گرد میکنه

نه دوست من اشتباه نکن به اخرین عدد نگاه نمیکنه چون خروجی کد23.18=23.72 میشه البته با دورقم اعشار.
در حقیقت میاد میبینه 18 به چه عددی نزدیکتره(10 یا 20) که در اینحا به 20 نزدیکتر است بعد به جای اون دو رقم(18)2 رو قرار میده.

من که این طوری ملتفت شدم:لبخندساده:

mahmod2000
پنج شنبه 26 اردیبهشت 1392, 23:16 عصر
دوست عزیز واقعا گیجم کردید

ببینید این کد
printf("%.2f",75.748);
میاد به شما 2 تا اعشار برمیگردونه
حالا شما چه عدد 75.74454 بدید
چه عدد 75.74 بدید
این کد به شما بسته به " "%.2f" " اینی که واسش تعریف میکنید بهتون اعشار میده
حالا اگه "%.3f" بزنید بهتون 3 تا اعشار میده و اگه عدد بیشتر از 3 تا اعشار به نزدیکترین عدد تقریبی گرد میکنه و خروجی میده

Beginner Programmer
پنج شنبه 26 اردیبهشت 1392, 23:22 عصر
دوست من برنامه نویسی دقیقا اینجاهاش شیرینه که ادم گیر میکنه:لبخندساده::بامزه:
خیلی ازت ممنونم که پاسخ دادی وگرنه خودم هرچی فکر میکیردم نمیفهمیدم چیکار میکنه.:تشویق:
امیدوارم دوستای خوب و مفیدی واسه هم باشیم
شب خوش من برم اندکی بانک اطلاعاتی بخونم:چشمک: