Javad_raouf
دوشنبه 27 شهریور 1396, 10:19 صبح
سلام
یک باگ عجیبی C# داره که وقتی یک عدد اعشاری float رو در یک عدد double ضرب می کنیم نتیجه اشتباه بر می گردونه:متعجب:
همین الان ویژوال استادیو رو باز کنید و این کد رو بنویسید:
float Num1 = 85.6F;
double Num2 = 1000;
double Num3 = Num1 * Num2;
MessageBox.Show(Num3.ToString());
طبیعتا توقع دارید نتیجه عدد 85600 باشه ولی این طور نیست:متعجب:
جوابی که بر می گرده این عدده:
85599.9984741211
یعنی چیزی نزدیک به جواب:لبخند:
خیلی برام جالبه و می خوام بدونم علتش چیه کسی می دونه؟
جالب اینجااست که اگر عدد اول float نباشه یا عدد دوم double نباشه این مشکل پیش نمیاد:افسرده:
به نظر شما مشکل چیه؟:لبخندساده:
یک باگ عجیبی C# داره که وقتی یک عدد اعشاری float رو در یک عدد double ضرب می کنیم نتیجه اشتباه بر می گردونه:متعجب:
همین الان ویژوال استادیو رو باز کنید و این کد رو بنویسید:
float Num1 = 85.6F;
double Num2 = 1000;
double Num3 = Num1 * Num2;
MessageBox.Show(Num3.ToString());
طبیعتا توقع دارید نتیجه عدد 85600 باشه ولی این طور نیست:متعجب:
جوابی که بر می گرده این عدده:
85599.9984741211
یعنی چیزی نزدیک به جواب:لبخند:
خیلی برام جالبه و می خوام بدونم علتش چیه کسی می دونه؟
جالب اینجااست که اگر عدد اول float نباشه یا عدد دوم double نباشه این مشکل پیش نمیاد:افسرده:
به نظر شما مشکل چیه؟:لبخندساده: