System.Number.NumberToUInt64 C# (CSharp) Method

NumberToUInt64() private static method

private static NumberToUInt64 ( NumberBuffer &number, UInt64 &value ) : Boolean
number NumberBuffer
value UInt64
return Boolean
        private unsafe static Boolean NumberToUInt64(ref NumberBuffer number, ref UInt64 value) {

            Int32 i = number.scale;
            if (i > UInt64Precision || i < number.precision || number.sign) {
                return false;
            }
            char * p = number.digits;
            BCLDebug.Assert(p != null, "");
            UInt64 n = 0;
            while (--i >= 0) {
                if (n > (0xFFFFFFFFFFFFFFFF / 10)) {
                    return false;
                }
                n *= 10;
                if (*p != '\0') {
                    UInt64 newN = n + (UInt64)(*p++ - '0');
                    // Detect an overflow here...
                    if (newN < n) {
                        return false;
                    }
                    n = newN;
                }
            }
            value = n;
            return true;
        }

Usage Example

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

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

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