كيفية جولة القيمة العشرية تصل إلى أقرب قيمة 0.05؟
سؤال
هل هناك أي طريقة لتقرير القيمة العشرية إلى أقرب قيمة 0.05 في .NET؟
السابق:
7.125 -> 7.15
6.66 -> 6.7
إذا كان متاحا الآن، فهل يمكن لأي شخص أن يقدم لي Algo؟
المحلول
ماذا عن:
Math.Ceiling(myValue * 20) / 20
نصائح أخرى
استخدم هذا:
Math.Round(mydecimal / 0.05m, 0) * 0.05m;
يمكن استخدام نفس المنطق في T-SQL:
ROUND(@mydecimal / 0.05, 0) * 0.05
انا افضل هذا النهج إلى إجابة مختارة ببساطة لأنه يمكنك الاطلاع مباشرة على الدقة المستخدمة.
شيء مثل هذا يجب أن يعمل لأي خطوة، وليس فقط 0.05:
private decimal RoundUp (decimal value, decimal step)
{
var multiplicand = Math.Ceiling (value / step);
return step * multiplicand;
}
الرياضيات .. ::. طريقة مستديرة (عشري، Int32، المنتصر)
جولة قيمة نقطة عائمة مزدوجة الدقة إلى العدد المحدد من الأرقام الكسرية. تعرف المعلمة كيفية جولة القيمة إذا كانت في منتصف الطريق بين رقمين آخرين.
Math.Round(1.489,2,MidpointRounding.AwayFromZero)
لا تنتمي إلى StackOverflow