System.Number.TryStringToNumber C# (CSharp) Method

TryStringToNumber() private static method

private static TryStringToNumber ( String str, NumberStyles options, NumberBuffer &number, NumberFormatInfo numfmt, Boolean parseDecimal ) : Boolean
str String
options NumberStyles
number NumberBuffer
numfmt NumberFormatInfo
parseDecimal Boolean
return Boolean
        private unsafe static Boolean TryStringToNumber(String str, NumberStyles options, ref NumberBuffer number, NumberFormatInfo numfmt, Boolean parseDecimal) {   

            if (str == null) {
                return false;
            }
            BCLDebug.Assert(numfmt != null, "");

            fixed (char* stringPointer = str) {
                char * p = stringPointer;
                if (!ParseNumber(ref p, options, ref number, numfmt, parseDecimal) 
                    || (p - stringPointer < str.Length && !TrailingZeros(str, (int)(p - stringPointer)))) {
                    return false;
                }
            }

            return true;
        }
    }

Usage Example

示例#1
0
        internal static unsafe double ParseDouble(string value, NumberStyles options, NumberFormatInfo numfmt)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }
            byte *stackBuffer = stackalloc byte[Number.NumberBuffer.NumberBufferBytes];

            Number.NumberBuffer number = new Number.NumberBuffer(stackBuffer);
            double num = 0.0;

            if (!Number.TryStringToNumber(value, options, ref number, numfmt, false))
            {
                string str = value.Trim();
                if (str.Equals(numfmt.PositiveInfinitySymbol))
                {
                    return(double.PositiveInfinity);
                }
                if (str.Equals(numfmt.NegativeInfinitySymbol))
                {
                    return(double.NegativeInfinity);
                }
                if (str.Equals(numfmt.NaNSymbol))
                {
                    return(double.NaN);
                }
                throw new FormatException(Environment.GetResourceString("Format_InvalidString"));
            }
            if (!Number.NumberBufferToDouble(number.PackForNative(), ref num))
            {
                throw new OverflowException(Environment.GetResourceString("Overflow_Double"));
            }
            return(num);
        }
All Usage Examples Of System.Number::TryStringToNumber