[c#] كيف يمكنني تحويل قيمة مزدوجة إلى أقرب قيمة صحيحة؟



Answers

double d = 1.234;
int i = Convert.ToInt32(d);

Reference

يعالج التقريب مثل:

تقريب إلى أقرب عدد صحيح 32 بت موقعة. إذا كانت القيمة في منتصف الطريق بين رقمين صحيحين ، يتم إرجاع الرقم الزوجي ؛ أي ، يتم تحويل 4.5 إلى 4 ، ويتم تحويل 5.5 إلى 6.

Question

كيف تقوم بتحويل مزدوج إلى أقرب int؟




double d;
int rounded = (int)Math.Round(d);



أنا أقوم بتطوير آلة حاسبة علمية تستخدم زر Int. لقد وجدت ما يلي هو حل بسيط وموثوق:

double dblInteger;
if( dblNumber < 0 )
   dblInteger = Math.Ceiling(dblNumber);
else
   dblInteger = Math.Floor(dblNumber);

ينتج Math.Round أحيانًا نتائج غير متوقعة أو غير مرغوب فيها ، وغالبًا ما ينتج التحويل الصريح إلى عدد صحيح (عبر الإرسال أو Convert.ToInt ...) قيمًا خاطئة لأرقام عالية الدقة. يبدو أن الطريقة المذكورة أعلاه تعمل دائمًا.






Related



Tags

c# c#   rounding