ashkan1234
جمعه 08 شهریور 1392, 22:59 عصر
سلام!
نمیدونم اسمشو بزارم ایراد یا باگ یا(ایراد از خودمه؟باگ از خودمه؟:لبخند::متفکر::کف:)
اگر دو تا عدد رو در سی شارپ بر هم تقسیم کنید و عدد اول کوچکتر از دومی باشد.
با کمال شگفتی میبینید خروجی صفر است!
بصورت خودکار دوتا عدد رو از نوع int میگیره که هیچ برام جای سواله چرا نتیجه رو هم int میگیره؟
امتحان کنید:
MessageBox.Show((2/8).ToString());
جواب صفر
بطور پیش فرض int در int حاصل int
حالا اینو ببینید:
double i = 2;
MessageBox.Show((i/8).ToString());
حالا درست میشه!
باز اگر مقدار اول رو short در نظر بگیرید پاسخ صفر هست!
2 یا 3 ساعتی سرکار بودم که چرا مقادیر رو بعضی جاها اشتب میده!
به نظر من اینجوری خیلی بده آخه من کلی محاسبات رو از تو بانک اطلاعاتی با مقادیر short و int بر میگردونم که حاصلشون نباید 0 بشه!
پروژه ام بزرگه!
دهنم آسفالتیته میشه اگر بخوام همه رو convert.todouble بزنم!
بنظرتون چیکار کنم!؟؟؟
خیلی برام عجیب بود!
قدیما که با vb6 کد میزدم اون شعورش بیشتر از سی شارپ میرسید!:لبخند::گیج:
شاید من فقط تا حالا نمیدونستم!
اگر چیزای مشابه این هست بفرمایید تا مطلع شویم
نمیدونم اسمشو بزارم ایراد یا باگ یا(ایراد از خودمه؟باگ از خودمه؟:لبخند::متفکر::کف:)
اگر دو تا عدد رو در سی شارپ بر هم تقسیم کنید و عدد اول کوچکتر از دومی باشد.
با کمال شگفتی میبینید خروجی صفر است!
بصورت خودکار دوتا عدد رو از نوع int میگیره که هیچ برام جای سواله چرا نتیجه رو هم int میگیره؟
امتحان کنید:
MessageBox.Show((2/8).ToString());
جواب صفر
بطور پیش فرض int در int حاصل int
حالا اینو ببینید:
double i = 2;
MessageBox.Show((i/8).ToString());
حالا درست میشه!
باز اگر مقدار اول رو short در نظر بگیرید پاسخ صفر هست!
2 یا 3 ساعتی سرکار بودم که چرا مقادیر رو بعضی جاها اشتب میده!
به نظر من اینجوری خیلی بده آخه من کلی محاسبات رو از تو بانک اطلاعاتی با مقادیر short و int بر میگردونم که حاصلشون نباید 0 بشه!
پروژه ام بزرگه!
دهنم آسفالتیته میشه اگر بخوام همه رو convert.todouble بزنم!
بنظرتون چیکار کنم!؟؟؟
خیلی برام عجیب بود!
قدیما که با vb6 کد میزدم اون شعورش بیشتر از سی شارپ میرسید!:لبخند::گیج:
شاید من فقط تا حالا نمیدونستم!
اگر چیزای مشابه این هست بفرمایید تا مطلع شویم