internal static unsafe Decimal ParseDecimal(string value, NumberStyles options, NumberFormatInfo numfmt) { byte *stackBuffer = stackalloc byte[Number.NumberBuffer.NumberBufferBytes]; Number.NumberBuffer number = new Number.NumberBuffer(stackBuffer); Decimal num = new Decimal(); Number.StringToNumber(value, options, ref number, numfmt, true); if (!Number.NumberBufferToDecimal(number.PackForNative(), ref num)) { throw new OverflowException(Environment.GetResourceString("Overflow_Decimal")); } return(num); }
internal unsafe static decimal ParseDecimal(string value, NumberStyles options, NumberFormatInfo numfmt) { byte *stackBuffer = stackalloc byte[checked (unchecked ((UIntPtr)Number.NumberBuffer.NumberBufferBytes) * 1)]; Number.NumberBuffer numberBuffer = new Number.NumberBuffer(stackBuffer); decimal result = 0m; Number.StringToNumber(value, options, ref numberBuffer, numfmt, true); if (!Number.NumberBufferToDecimal(numberBuffer.PackForNative(), ref result)) { throw new OverflowException(Environment.GetResourceString("Overflow_Decimal")); } return(result); }
internal static unsafe bool TryParseDecimal(string value, NumberStyles options, NumberFormatInfo numfmt, out Decimal result) { byte *stackBuffer = stackalloc byte[Number.NumberBuffer.NumberBufferBytes]; Number.NumberBuffer number = new Number.NumberBuffer(stackBuffer); result = new Decimal(); return(Number.TryStringToNumber(value, options, ref number, numfmt, true) && Number.NumberBufferToDecimal(number.PackForNative(), ref result)); }
internal unsafe static bool TryParseDecimal(string value, NumberStyles options, NumberFormatInfo numfmt, out decimal result) { byte *stackBuffer = stackalloc byte[checked (unchecked ((UIntPtr)Number.NumberBuffer.NumberBufferBytes) * 1)]; Number.NumberBuffer numberBuffer = new Number.NumberBuffer(stackBuffer); result = 0m; return(Number.TryStringToNumber(value, options, ref numberBuffer, numfmt, true) && Number.NumberBufferToDecimal(numberBuffer.PackForNative(), ref result)); }