یکی از خطاهای معروف به دلیل ذخیره سازی داده خیلی اوقات توی زبانها اتفاق میافته . خطای ROUND OFF هستش .
برای پایتون مثلا این مثال رو من دیدم خیلی میزنند . که عبارت ( 0.2 + 0.1 == 0.3 ) در پایتون FALSE میشه چون پایتون حاصل جمع
سمت راست رو به صورت float و برابر عدد 3.0000004 میگیره علاوه بر از اینکه نمیدونم یک عدد اعشاری چشکلی به صورت بیت در حافظه ذخیره میشه ؟ ( مثلا شاید به صورت تقسیم دو عدد یا نه صرفا همون ارقام دارن ذخیره میشن ( سوال اول )
سوال دومم اینه که چرا این باگ عموما توی زبان CPP جای نداره ! ( سوام دوم )
پ.ن : آموزشهای دیگه پایتون میگفتن باید از تابع isclose داخل کتابخونه math استفاده کنم برای مقایسه که با یه درصد خطایی قابل پذیرش باشه ! هر چند اونم به نظرم دستی منطقیتر باشه . یعنی خود یکم بالا و پایین و عدد رو به عنوان شرط بذاریم .