title: Why does Double.TryParse() return false for a string containing double.MaxValue or double.MinValue?
body: <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>