PDA

View Full Version : سوال: سوال در رابطه با تغییر نوع متغییر در طول برنامه



kamran_14
دوشنبه 27 آذر 1391, 10:17 صبح
سلام
خسته نباشید
در این برنامه باید جوابها به ترتیب 0.1 و 0.2 و 0.4 و 0.2 و 0.1 بیاد
جوابها درست چاپ می شند به جز آخری
نمی دونم مشکل تو چیه؟ من همینو تبدیل به سی پلاس کردم درست جواب داد
مقادیری که حتی در متغییرهای Sambol_[index].End_Bazeh و Sambol_[index].Start_Bazeh ذخیره می شن درست اند یعنی به ترتیب 1 و 0.9 ولی وقتی از هم دیگه کم می شن جواب اشتباهی می دن یعنی 0.1 رو چاپ نمی کنند
شما می تونید با برداشتن کامینت مقادیر Sambol_[index].End_Bazeh و Sambol_[index].Start_Bazeh رو ببینید. می بینید که درست اند ولی وقتی کم Sambol_[index].Start_Bazeh رو از Sambol_[index].End_Bazeh کم می کنیم جواب اشتباهی رو می دن.
من هم Sambol_[index].Start_Bazeh و هم Sambol_[index].End_Bazeh رو از نوع single تعریف کردم ولی وقتی موقع کم کردن به val تبدیل می کنم درست جواب می ده ولی در حالی که عدداند نیاز به تبدیل val نیست
نمی دونم واقعا خیلی عجیبه می شه کمکم کنید

vbhamed
دوشنبه 27 آذر 1391, 23:01 عصر
سلام

اين به خاطر دقت محاسبات اعشار شناور و نوع محاسبه اونهاست، عدد چاپ شده معادل 0.09999996 هست كه تقريبا 0.1 ميشه، البته اگر نوع داده رو Double در نظر بگيريد دقيقا 0.1 رو ميده