title: C# Math.Pow() is broken
body: <p>And no, this does not (to my understanding) involve integer division or floating-point rounding issues.</p>
  
  <p>My exact code is:</p>
  
  <pre><code>    static void Main(string[] args)
      {
          double power = (double)1.0 / (double)7.0;
          double expBase = -128.0;
          System.Console.WriteLine("sanity check: expected: -128 ^ 0.142857142857143 = -2.    actual: " + expBase + " ^ " + power + " = " + Math.Pow(expBase, power));
          System.Console.ReadLine();
      }
  </code></pre>
  
  <p>The output is:</p>
  
  <p><code>sanity check: expected: -128 ^ 0.142857142857143 = -2.    actual: -128 ^ 0.14285
  7142857143 = NaN</code></p>
  
  <p>The Target Framework for this code is (according to solution properties) .NET Framework 4.0 Client Profile.</p>
  
  <p>Strangely I haven't found any mention of this anywhere on the Web.  Am I taking crazy pills here!?</p>