یه سوال دیگه دوستان
من یه تابع نوشتم که یه عدد float دریافت می کنه و اونو به صورت رشته خروجی میده. ولی یه مشکلی وجود داره. برای بعضی اعداد درست عمل نمی کنه مثلا وقتی 0.32 بهش داده میشه خروجی اش 0.31999998 هستش. بعد از چند بار بررسی متوجه شدم اشکال از این قسمت هست که اونو به صورت یه برنامه کوچیک نوشتم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در این برنامه عدد اعشاری n از ورودی دریافت میشه و تعداد رقم بعد از اعشار در متغیر i دخیره میشه و در نهایت چاپ میشه. ولی وقتی عدد 0.32 بهش داده میشه تعداد رقم بعد از اعشار رو 8 میدونه. اما وقتی عددی مثل 0.598 بهش داده میشه نتیجه درسته. اگه داخل حلقه while یکی از این دستور رو اضافه کنیم می بینیم که عدد n چه تغییراتی میکنه:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من که سر در نمیارم