سؤال

هل هناك أي طريقة لتقرير القيمة العشرية إلى أقرب قيمة 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)

مكررة هنا و هنا ل Ruby و Python. لا ينبغي أن يكون مختلفا جدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top