不,这不(据我了解)涉及整数除法或浮点舍入问题。
我的确切代码是:
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();
}
输出是:
sanity check: expected: -128 ^ 0.142857142857143 = -2. actual: -128 ^ 0.14285
7142857143 = NaN
此代码的目标框架是(根据解决方案属性).NET Framework 4.0 Client Profile。
奇怪的是,我在网络上的任何地方都没有找到任何提及这一点。我在这里吃疯药吗!?