Nik*_*tov 1 .net c# double-precision pow
Math.Pow似乎无法正常工作以取得重大成果.可能是因为它double用于计算(如何在.NET Framework中实现Math.Pow()?).
例如:
public static void Main()
{
Console.WriteLine((long)Math.Pow(17, 13));
Console.WriteLine(Pow(17, 13));
}
public static long Pow(int num, int pow)
{
long answer = 1;
for (int i = 0; i < pow; i++)
{
answer *= num;
}
return answer;
}
Run Code Online (Sandbox Code Playgroud)
上面代码的结果是:
9904578032905936
9904578032905937
Run Code Online (Sandbox Code Playgroud)
是否有任何内置的.NET替代方案可以使用数字的功能而没有错误?
Dou*_*las 10
该BigInteger结构有一种Pow方法.此结构驻留在System.Numerics命名空间中,并在.NET Framework 4.0中引入.System.Numerics在使用之前,您需要添加对程序集的引用.
using System;
using System.Numerics;
public static class Program
{
public static void Main(string[] args)
{
Console.WriteLine(BigInteger.Pow(17, 13)); // 9904578032905937
}
}
Run Code Online (Sandbox Code Playgroud)
注意,BigInteger它只适用于整数运算; 它无法处理小数.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |