いいえ、これは (私の理解では) 整数除算や浮動小数点の丸めの問題を伴いません。
私の正確なコードは次のとおりです。
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 です。
奇妙なことに、私は Web のどこにもこれについての言及を見つけませんでした。私はここでクレイジーな薬を飲んでいます!?