void ProcessNumber(string number)
{
if (number.IndexOf('.') != -1 ||
number.IndexOf('e') != -1 ||
number.IndexOf('E') != -1)
{
double n_double;
if (Double.TryParse(number, NumberStyles.Number, CultureInfo.InvariantCulture, out n_double))
{
token = JsonToken.Double;
token_value = n_double;
return;
}
}
int n_int32;
if (Int32.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int32))
{
token = JsonToken.Int;
token_value = n_int32;
return;
}
long n_int64;
if (Int64.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int64))
{
token = JsonToken.Long;
token_value = n_int64;
return;
}
// Shouldn't happen, but just in case, return something
token = JsonToken.Int;
token_value = 0;
}