PDA

View Full Version : سوال: تفاوت float‌و double در تبدیل به رشته شدن



seyda2020
یک شنبه 10 خرداد 1394, 19:35 عصر
سلام به دوستان و مهندسای گرامی
من تازه برنامه نویسی رو شروع کردم. در بین آموزش متوجه شدم که موقع تبدیل float به string برنامه پیغام خطا میده. تو اینترنت یه نگاهی کردم ولی نفهمیدم بین float و double چه فرقی هست که یکیش تبدیل میشه و اون یکی نه.
ممکنه دوستان لطف کنن و بنده رو راهنمایی کنن.
کد رو موقع تمرین به صورت زیر نوشتم:float a = 2.3;
string b = a.tostring();
messagebox.show(a, "");


همین کد رو اگر تبدیل کنم به double مشکلی ایجاد نمی کنه.

RmeXXXXXXXXX
یک شنبه 10 خرداد 1394, 23:06 عصر
مشکل از تبدیل نیست.! بصورت پیشفرض شما اعدادی که مستقیم در برنامه می نویسید اگه صحیح باشند از نوع int در نظر گرفته میشوند. و اعداد اعشاری بصورت پیشفرض از نوع double در نظر گرفته میشوند. پس در کدی که شما نوشتید عدد 2.3 از نوع دابل شناخته میشه و تبدیل ضمنی از دابل به فلوت مجاز نیست.
یک راه نوشتن کلمه float داخل پرانتز و قبل از عدداست ولی راهکار درست اینه که به کامپایلر اعلام کنید که عدد 2.3 از نوع فوت باشه. برای اینکار انتهای عدد حرف f یا F رو بنویسید 2.3f مشکل حل خواهد شد.

float a=(float) 2.3
float a= 2.3f

درکل حرف f یا F برای نوع float
حرف d یا D برای نوع double
و حرف M برای نوع decimal (همون money در sql است)