-Changed double parsing back to double.TryParse

This commit is contained in:
James Newton-King
2017-03-27 22:20:47 +13:00
parent a42f451626
commit 73652124cd
3 changed files with 10 additions and 4 deletions
@@ -39,6 +39,7 @@ namespace Newtonsoft.Json.Tests.Utilities
[TestFixture]
public class ConvertUtilsTests : TestFixtureBase
{
#if HAS_CUSTOM_DOUBLE_PARSE
private void AssertDoubleTryParse(string s, ParseResult expectedResult, double? expectedValue)
{
double d;
@@ -157,6 +158,7 @@ namespace Newtonsoft.Json.Tests.Utilities
AssertDoubleTryParse("4.94065645841247E+555", ParseResult.Overflow, null);
}
#endif
private void AssertDecimalTryParse(string s, ParseResult expectedResult, decimal? expectedValue)
{
+6 -4
View File
@@ -2058,9 +2058,10 @@ namespace Newtonsoft.Json
}
else
{
string number = _stringReference.ToString();
double value;
ParseResult parseResult = ConvertUtils.DoubleTryParse(_stringReference.Chars, _stringReference.StartIndex, _stringReference.Length, out value);
if (parseResult == ParseResult.Success)
if (double.TryParse(number, NumberStyles.Float, CultureInfo.InvariantCulture, out value))
{
numberValue = value;
}
@@ -2137,9 +2138,10 @@ namespace Newtonsoft.Json
}
else
{
string number = _stringReference.ToString();
double d;
parseResult = ConvertUtils.DoubleTryParse(_stringReference.Chars, _stringReference.StartIndex, _stringReference.Length, out d);
if (parseResult == ParseResult.Success)
if (double.TryParse(number, NumberStyles.Float, CultureInfo.InvariantCulture, out d))
{
numberValue = d;
}
@@ -930,6 +930,7 @@ namespace Newtonsoft.Json.Utilities
return ParseResult.Success;
}
#if HAS_CUSTOM_DOUBLE_PARSE
private static class IEEE754
{
/// <summary>
@@ -1356,6 +1357,7 @@ namespace Newtonsoft.Json.Utilities
value = IEEE754.PackDouble(isNegative, mantissa, exponent);
return double.IsInfinity(value) ? ParseResult.Overflow : ParseResult.Success;
}
#endif
public static ParseResult DecimalTryParse(char[] chars, int start, int length, out decimal value)
{