PDA

View Full Version : سوال: جواب صحیح تقسیم دو عدد double



man_iran
پنج شنبه 10 مرداد 1387, 10:03 صبح
اگر بخواهیم تقسیم صحیح دو عدد دابل را بدست بیاریم باید چه کار کنیم ؟
چون جواب تقسیم دو عدد دانبل اعشاری می شه.

Mrs.Net
پنج شنبه 10 مرداد 1387, 10:53 صبح
double d1=45.2;
double d2=6.3
int result=d1/d2;

pars.engineer
پنج شنبه 10 مرداد 1387, 10:57 صبح
اين كار با يك typeCasting ساده امكان پذير است:




double dblNum1 = double.Parse(txtNum1.Text);
double dblNum2 = double.Parse(txtNum2.Text);
int intResult = (int)(dblNum1 / dblNum2);

man_iran
پنج شنبه 10 مرداد 1387, 11:11 صبح
double d1=45.2;
double d2=6.3
int result=d1/d2;

ببخشیدها! ولی این شکلی را که می دونستم! :لبخند:

جواب بدست آمده برای اعداد من توی محدوده int جا نمی گیره من می خوام جواب نیز توی double قرار گرفته بشه
باید چه کار کنم؟

naeeme
پنج شنبه 10 مرداد 1387, 11:21 صبح
ببخشیدها! ولی این شکلی را که می دونستم! :لبخند:

جواب بدست آمده برای اعداد من توی محدوده int جا نمی گیره من می خوام جواب نیز توی double قرار گرفته بشه
باید چه کار کنم؟

توی محدوده int64 که قرار میگیره، از cast اون استفاده کنین.

man_iran
پنج شنبه 10 مرداد 1387, 12:08 عصر
توی محدوده int64 که قرار میگیره، از cast اون استفاده کنین.
چطور ؟
یادتون باشه که عدد خیلی بزرگه

Xcalivorse
پنج شنبه 10 مرداد 1387, 12:15 عصر
سلام man_iran عزیز. از کد زیر استفاده کن جوابتو میده.

double d1=45.2;
double d2=6.3
Int64 result=d1/d2;

man_iran
پنج شنبه 10 مرداد 1387, 12:49 عصر
سلام man_iran عزیز. از کد زیر استفاده کن جوابتو میده.

double d1=45.2;
double d2=6.3
Int64 result=d1/d2;

اگر توجه کنید من گفتم که عددی که بعد از تقسیم بدست میات خیلی زیاده یعنی توی محدوده int و خانواده آن (16 , 32 , 64 ) قرار نمی گیره

خودتون می تونید با استفاده از داده های زیر امتحان کنید :



double d1=99999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999.0;
double d2 = 2.0;
Int64 result=Convert.ToInt64( d1/d2);


یکی از راهاش اینه که توی دابل ذخیرش کنم ولی اعشاری می شه. برای صحیح شدن باید چه کار کرد ؟

naeeme
پنج شنبه 10 مرداد 1387, 13:03 عصر
بین data typeهایی که برای اعداد صحیح استفاده می شن، decimal بیشترین مقدار رو می تونه بگیره که حداکثر اون برابر 79,228,162,514,264,337,593,543,950,335 هست. اگه عددتون این مقدار رو هم پوشش بده، خوب دیگه...

Sajjad.Aghapour
پنج شنبه 10 مرداد 1387, 17:16 عصر
دوست عزیز double یه داده بزرگیه و نمیشه به int تبدیلش کرد.من راهی به روش تبدیل های مستقیم به ذهنم نمی رسه ولی شما می تونی اون رو به یک رشته تبدیل و از قسمت '.' اون برش بدی و اندیس صفر اون رو به int تبدیل کنی.فکر کنم شبیه کد زیر بشه....


string[] s = (a / b).ToString().Split('.');
int a1 = int.Parse(s[0]);

Mahdi.Kiani
پنج شنبه 10 مرداد 1387, 18:04 عصر
double d1 = 3.9;
double d2 = 1.5;
double res =Math.Truncate( d1 / d2);