PDA

View Full Version : مبتدی: مشکل در تقسیم کردن دو مقدار صحیح(که خروجیش اعشاری بشه)



malloc
چهارشنبه 22 آذر 1391, 20:01 عصر
سلام دوستان
من دوتا عدد صحیح دارم که از دیتابیس میخونم.
یکی مجموع و دیگری تعداد . من کد زیر و میزنم اما خروجیش عدد صحیحه (مثلا مجموع برابر 7 و تعداد برابر 2 که حاصل تقسیم باید بشه 3.5 اما خروجیش میشه 3.0)

return Convert.ToDouble(sum / Count);

mehdi.mousavi
چهارشنبه 22 آذر 1391, 20:06 عصر
سلام.
کافیه بدین شکل عمل کنید:

int sum = 7, count = 2;
double result = (double)sum / count;


موفق باشید.

malloc
چهارشنبه 22 آذر 1391, 20:09 عصر
آره درست شد.هرچند یجوره دیگه اما ممنون که جواب دادید.

حالا یه نکته دیگه.
این کار باعث میشه خروجی بشه 3.66666666666667 اما من میخوام فقط بنویسه 3.6
چیکار کنم

mehdi.mousavi
چهارشنبه 22 آذر 1391, 20:32 عصر
آره درست شد.هرچند یجوره دیگه اما ممنون که جواب دادید. حالا یه نکته دیگه. این کار باعث میشه خروجی بشه 3.66666666666667 اما من میخوام فقط بنویسه 3.6 چیکار کنم

از چه نسخه ای از .NET Framework استفاده می کنید؟ من در .NET Framework 2، 3، 3.5، 4 و 4.5 آزمایش کردم جواب 3.5 بود! میشه کدی که نوشته ای رو دقیق اینجا قرار بدید تا ببینم چطوری چنین اتفاقی رخ داده؟

موفق باشید.

malloc
چهارشنبه 22 آذر 1391, 21:06 عصر
بیا اینم کله کد تابع
[CODE]Linq.NDT_TabelsDataContext GetThisRate = new Linq.NDT_TabelsDataContext();
var s = GetThisRate.S_GetRateAvg(int.Parse((FormView1.Foot erRow.FindControl("lblNewsID") as Label).Text));

foreach (var s1 in s)
{
Count = Convert.ToInt32(s1.Count);
sum = Convert.ToInt32(s1.Sum);
}
GetThisRate.Dispose();

return ((float)sum / Count);[/CODE
ضمنا من از فریم ورک 4 استفاده میکنم.

طبیعتا مقدار Double یا float دقت اعشاری دارند. حالا من باید یجوری این دقت اعشارو کم کنم والا بطور پیشفرض با دثت اعشار بالا چاپ میکنه

malloc
چهارشنبه 22 آذر 1391, 21:43 عصر
خوب دوستان مشکلم حل شد دعوا نکنید سره کمک کردن به من:قهقهه:
باید تابع زیر و مینوشتم :

Math.Round((double)sum / Count,1);
که اون عدد یک یعنی یک رقم اعشار

گفتم که اگه کسی مشکل داشت مشکلش حل بشه