Esempio n. 1
0
        public static double GetEpsilonRound(this EpsilonType precision)
        {
            double result = 0.01f;

            switch (precision)
            {
            case EpsilonType.Decimal:
                result = 0.001f;
                break;

            case EpsilonType.Currency:
                result = 0.0001f;
                break;

            case EpsilonType.Exchange:
                result = 0.00001f;
                break;

            case EpsilonType.Physical:
                result = 0.000001f;
                break;

            case EpsilonType.Quantum:
                result = 0.0000001f;
                break;
            }

            return(result);
        }
Esempio n. 2
0
        public static bool CheckNearlyCondition(this NearlyConditionType condition, float a, float b, EpsilonType precision)
        {
            bool result = false;

            switch (condition)
            {
            case NearlyConditionType.bigger:
                result = a > b;
                break;

            case NearlyConditionType.bigger_equal:
                result = a.NearlyEqual(b, (float)precision.GetEpsilonRound()) || a > b;
                break;

            case NearlyConditionType.equal:
                result = a.NearlyEqual(b, (float)precision.GetEpsilonRound());
                break;

            case NearlyConditionType.smaller:
                result = a < b;
                break;

            case NearlyConditionType.smaller_equal:
                result = a.NearlyEqual(b, (float)precision.GetEpsilonRound()) || a < b;
                break;
            }
            return(result);
        }