System.Number.NumberToInt64 C# (CSharp) Method

NumberToInt64() private static method

private static NumberToInt64 ( NumberBuffer &number, Int64 &value ) : Boolean
number NumberBuffer
value Int64
return Boolean
        private unsafe static Boolean NumberToInt64(ref NumberBuffer number, ref Int64 value) {

            Int32 i = number.scale;
            if (i > Int64Precision || i < number.precision) {
                return false;
            }
            char* p = number.digits;
            BCLDebug.Assert(p != null, "");
            Int64 n = 0;
            while (--i >= 0) {
                if ((UInt64)n > (0x7FFFFFFFFFFFFFFF / 10)) {
                    return false;
                }
                n *= 10;
                if (*p != '\0') {
                    n += (Int32)(*p++ - '0');
                }
            }
            if (number.sign) {
                n = -n;
                if (n > 0) {
                    return false;
                }
            }
            else {
                if (n < 0) {
                    return false;
                }
            }
            value = n;
            return true;
        }

Usage Example

示例#1
0
        internal static unsafe long ParseInt64(string value, NumberStyles options, NumberFormatInfo numfmt)
        {
            byte *stackBuffer = stackalloc byte[Number.NumberBuffer.NumberBufferBytes];

            Number.NumberBuffer number = new Number.NumberBuffer(stackBuffer);
            long num = 0;

            Number.StringToNumber(value, options, ref number, numfmt, false);
            if ((options & NumberStyles.AllowHexSpecifier) != NumberStyles.None)
            {
                if (!Number.HexNumberToInt64(ref number, ref num))
                {
                    throw new OverflowException(Environment.GetResourceString("Overflow_Int64"));
                }
            }
            else if (!Number.NumberToInt64(ref number, ref num))
            {
                throw new OverflowException(Environment.GetResourceString("Overflow_Int64"));
            }
            return(num);
        }
All Usage Examples Of System.Number::NumberToInt64