پاسخ غلط برنامه !!!

سوال

سلام

کار قسمتی از برنامه‌ای که نوشتم (و مطمئنم درست نوشتم!) این هست که مثلاً ۵ رو از عدد ۶۳۵ در بیاره:

حالا ۵ مقدار digit است!

حالا مشکل کجاست؟

حالا برای این عدد درست در اومد، اما واسه عددی مثل ۲۱ خروجی ۰ است!!!

چرا؟ مگه جواب ۱ نیست؟ بله اما چون وقتی در خط ۶ کد بالا، ۲۱ تقسیم بر ۱۰ میشه، جواب ۲.۰۹۹۹۹۹۹ است!!!!!!

در حالی که جواب درست ۲.۱ است!

برای متغیرهایی از نوع double هم همین اتفاق میفته

خب، مشکل کجاست؟ ممنون میشم هر چه زودتر یک دلیل و یک راه حل بدهید، چون عجله دارم … 🙏🙏🙏

در حال بررسی 0
Muhammad 3 سال 2 پاسخ ها 191 دیده شده 0

پاسخ ها ( ۲ )

  1. مهندس خیلی نفهمیدم سوالت چی هست

    حالا من برداشت خودم رو براتون شرح میدم :

    شما میخواین که مثلا عدد ۶۳۵ , فقط عدد اولش یعنی ۵ بمونه

    اگر منظورتون اینه که اصلا سخت نیست و فقط یک خط کد داره

    num %= 10

    هر عددی باقیماندش به ۱۰ نتیجش عدد اول اون میشه

    • سلام

      بله تقریباً منظورم اینه. چرا تقریباً؟ چون شاید لازم بشه مثلاً از همین ۶۳۵، عددی مثل ۳ یا ۶ رو دربیاریم.

      که در این صورت فقط به این یک خط کد نیاز نداریم …

      اما جالب بود خط آخر پیامتون: « هر عددی باقیماندش به ۱۰ نتیجش عدد اول اون میشه »

      تاحالا بهش فکر نکرده بودم … سعی داشتم بدون عملگر % کار رو پیش ببرم

      اما مشکل من:

      همون طور که در بالا گفتم چرا ۲۱ تقسیم بر ۱۰ میشه ۲.۰۹۹۹۹۹۹ ؟

      اما بخاطر راهنمایی % تون دیگه لازم نیست این تقسیم رو انجام بدم.

      خیلی ممنون -> %

      ولی تقسیم بالا چرا این طور شد؟

ارسال یک پاسخ