Why does Double.TryParse() return false for a string containing double.MaxValue or double.MinValue?
<p>I have static method that takes a string for input and returns the original input string if the string represents a number.  If the string does not represent a number the the input string is processed and a transformed string is returned.  I'm writing test cases.  I'm trying to verify that an input string containing either <code>double.MinValue</code> or <code>double.MaxValue</code> is returned unchanged.  I've read through a number of forums, including StackOverflow, and have come up with the following logic:</p>

<pre><code>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");
}
</code></pre>

<p>Problem is the <code>Double.TryParse()</code> always returns false.  I've called <code>TryParse()</code> in a bunch of different ways, but the result is always the same, false.</p>

<p>This logic works if I use <code>decimal.MinValue()</code>, <code>int.MinValue()</code>, or <code>float.MinValue()</code>.</p>

<p>Can someone tell me why my logic isn't working for <code>double.MinValue</code>?</p>
