long类型有函数Math.Pow(A,n)吗?
Is there has a function Math.Pow(A,n) for long type?
我正在测试一个小的 C# 程序片段:
short min_short = (short)(int)-Math.Pow(2,15);
short max_short = (short)(int)(Math.Pow(2, 15) - 1);
Console.WriteLine("The min of short is:{0};\tThe max of short is:{1}", min_short, max_short);
int min_int = (int)-Math.Pow(2, 31);
int max_int = (int)(Math.Pow(2, 31) - 1);
Console.WriteLine("The min of int is:{0};\tThe max of int is:{1}", min_int, max_int);
uint min_uint = 0;
uint max_uint = (uint)(Math.Pow(2, 32) - 1);
Console.WriteLine("The min of uint is:{0};\tThe max of uint is:{1}", min_uint, max_uint);
long min_long = (long)-Math.Pow(2, 63);
long max_long = (long)(Math.Pow(2, 63) - 1);
Console.WriteLine("The min of long is:{0};\tThe max of long is:{1}", min_long, max_long);
ulong min_ulong = 0;
ulong max_ulong = (ulong)(Math.Pow(2, 64) - 1);
Console.WriteLine("The min of ulong is:{0};\tThe max of ulong is:{1}", min_ulong, max_ulong);
输出为:
The min of ushort is:0; The max of ushort is:65535
The min of short is:-32768; The max of short is:32767
The min of int is:-2147483648; The max of int is:2147483647
The min of uint is:0; The max of uint is:4294967295
The min of long is:-9223372036854775808;The max of long is:-9223372036854775808
The min of ulong is:0; The max of ulong is:0
我怀疑是Math.Pow()函数的错误导致的,返回的是double类型
public static double Pow(
double x,
double y
)
所以,我的问题是:long类型有类似的Math函数吗?
如何更正上面程序片段中的错误。
非常感谢!
您已达到 Math.Pow
上限。
您需要使用 System.Numerics.BigInteger.Pow
.
我正在测试一个小的 C# 程序片段:
short min_short = (short)(int)-Math.Pow(2,15);
short max_short = (short)(int)(Math.Pow(2, 15) - 1);
Console.WriteLine("The min of short is:{0};\tThe max of short is:{1}", min_short, max_short);
int min_int = (int)-Math.Pow(2, 31);
int max_int = (int)(Math.Pow(2, 31) - 1);
Console.WriteLine("The min of int is:{0};\tThe max of int is:{1}", min_int, max_int);
uint min_uint = 0;
uint max_uint = (uint)(Math.Pow(2, 32) - 1);
Console.WriteLine("The min of uint is:{0};\tThe max of uint is:{1}", min_uint, max_uint);
long min_long = (long)-Math.Pow(2, 63);
long max_long = (long)(Math.Pow(2, 63) - 1);
Console.WriteLine("The min of long is:{0};\tThe max of long is:{1}", min_long, max_long);
ulong min_ulong = 0;
ulong max_ulong = (ulong)(Math.Pow(2, 64) - 1);
Console.WriteLine("The min of ulong is:{0};\tThe max of ulong is:{1}", min_ulong, max_ulong);
输出为:
The min of ushort is:0; The max of ushort is:65535
The min of short is:-32768; The max of short is:32767
The min of int is:-2147483648; The max of int is:2147483647
The min of uint is:0; The max of uint is:4294967295
The min of long is:-9223372036854775808;The max of long is:-9223372036854775808
The min of ulong is:0; The max of ulong is:0
我怀疑是Math.Pow()函数的错误导致的,返回的是double类型
public static double Pow(
double x,
double y
)
所以,我的问题是:long类型有类似的Math函数吗? 如何更正上面程序片段中的错误。 非常感谢!
您已达到 Math.Pow
上限。
您需要使用 System.Numerics.BigInteger.Pow
.