У меня есть статический метод, который берет строку для ввода и возвращает исходную строку ввода, если строка представляет число. Если строка не представляет число, входная строка обрабатывается и возвращается преобразованная строка. Я пишу тестовые примеры. Я пытаюсь проверить, что строка ввода, содержащая либо double.MinValue, либо double.MaxValue, возвращается без изменений. Я прочитал несколько форумов, включая StackOverflow, и придумал следующую логику:
string doubleMax = double.MaxValue.ToString();
double d;
CultureInfo cultureInfo = new CultureInfo("en-US", true);
if (Double.TryParse(doubleMax, NumberStyles.Any, cultureInfo.NumberFormat, out d))
{
Console.WriteLine("parsed");
}
else
{
Console.WriteLine("couldn't parse");
}
Проблема: Double.TryParse() всегда возвращает false. Я вызвал TryParse() по-разному, но результат всегда один и тот же, false.
Эта логика работает, если я использую decimal.MinValue(), int.MinValue() или float.MinValue().
Может кто-нибудь сказать мне, почему моя логика не работает для double.MinValue?