PDA

View Full Version : سوال: در رابطه با تابع int.parse و double.parse



i-phone
سه شنبه 04 تیر 1392, 22:21 عصر
سلام دوستان
من تازه دارم برنامه نویسی یاد میگیرم در حال کار کردن از روی کتاب آقای هاشمیان قسمت تبدیل نوع داده ای بودم که توجه ام به این جلب شد که کمی هم خودم جلو برم و با کد ها بازی کنم
میشه بگید چی در این کد غلط هست ؟


double Xm0on = 1;
double Saeed = 2;
Xm0on = double.Parse (Saeed) ;

MessageBox.Show("Parse" + Xm0on);


هر کاری که میکنم سی شارپ به من اررور میده !
با اینیجر هم تست کردم بازم همین اررور
این اررور رو میده که مربوط به خط :


Xm0on = double.Parse (Saeed) ;

است
اررور :


2 Argument 1 : cannot convert from 'double' to 'string'
1 The best overloaded method match for 'double.Parse(string)' has some invalid arguments

معنیش رو از تابع استرینگ نمی فهمم !
آخه تو کتاب گفته شده که برای تبدیل نوع داده ای اعشاری به اعشاری از تابع :
double.Pare ( Motaghayer);
و صحیح به صحیح :
int.Parse ( Motaghayer );
ولی خب من نمیفهمم کجا غلط نوشتم :(

IMANAZADI
سه شنبه 04 تیر 1392, 22:48 عصر
اولا مقدار متغییر Saeed شما double هست چرا دوباره تبدیل میکنید

برای تبدیل متغییر string هم از کد Convert.ToDouble("string") استفاده کنید
ثانیا


MessageBox.Show("Parse" + Xm0on);


آخر این کد یه ToString() کم داره


MessageBox.Show("Parse" + Xm0on.ToString());

i-phone
سه شنبه 04 تیر 1392, 23:05 عصر
پس دستور Parse برای چه کاری استفاده میشود ؟

IMANAZADI
سه شنبه 04 تیر 1392, 23:14 عصر
این دو دستور شبیه هم هستند
ولی زمانی از parse استفاده میکنیم که اگر خطایی روی داد عدد مورد نظر ما جایگزین شود


int x;
x=int.parse("string",out 0);


رشته 9999999999999999 در نظر بگیرید
برای تبدیل این رشته به عدد اگر از convert.toint() استفاده شود چون این عدد از اندازه int بزرگتر می باشد باعث overflow یا سرریز و خطا میشود

ولی اگر از int.parse استفاده شود در صورت بروز خطا عدد مورد نظر که در مثال بالا 0 هست جایگزین میشود

fakhravari
چهارشنبه 05 تیر 1392, 00:21 صبح
هميشه از تابع convert استفاده كنيد.
تبديل هاي بيشتري نسبت به تبديل خود متغير داره.

Mahmoud.Afrad
چهارشنبه 05 تیر 1392, 01:03 صبح
پس دستور Parse برای چه کاری استفاده میشود ؟
اگر به نوع پارامتر ورودی این متد توجه کنی ، متوجه میشی که متغیر رشته ای را به متغیر عددی تبدیل میکنه.