http://msdn.microsoft.com/en-us/library/system.math.pow.aspxから
int value = 2;
for (int power = 0; power <= 32; power++)
Console.WriteLine("{0}^{1} = {2:N0}",
value, power, (long) Math.Pow(value, power));
Math.Powは引数としてdoubleを取りますが、ここではintを渡します。
質問:doubleへの暗黙の変換が発生した場合、浮動小数点の丸め誤差の危険性はありますか?
はいの場合は、次のようなものを使用することをお勧めします。
public static int IntPow(int x, uint pow)
{
int ret = 1;
while (pow != 0)
{
if ((pow & 1) == 1)
ret *= x;
x *= x;
pow >>= 1;
}
return ret;
}