Pchp.Library.PhpMath._Log10Abs C# (CSharp) Метод

_Log10Abs() приватный статический Метод

private static _Log10Abs ( double value ) : int
value double
Результат int
        private static int _Log10Abs(double value)
        {
            value = Math.Abs(value);

            if (value < 1e-8 || value > 1e23)
            {
                return (int)Math.Floor(Math.Log10(value));
            }
            else
            {
                var values = _Log10AbsValues;

                /* Do a binary search with 5 steps */
                var result = 16;
                if (value < values[result])
                    result -= 8;
                else
                    result += 8;

                if (value < values[result])
                    result -= 4;
                else
                    result += 4;

                if (value < values[result])
                    result -= 2;
                else
                    result += 2;

                if (value < values[result])
                    result -= 1;
                else
                    result += 1;

                if (value < values[result])
                    result -= 1;

                result -= 8;

                //
                return result;
            }
        }