C#中最大的数据类型是什么?或者说,我应该使用哪种数据类型来计算1619的阶乘。我尝试了ulong和uint64,但它们都对我的答案进行了修剪。
看一下这个 https://msdn.microsoft.com/en-us/library/system.numerics.biginteger%28v=vs.110%29.aspx
BigInteger并不是非常快,但对于大数字来说是可以计算的。
以下是MSDN上的一个简单示例。
string positiveString = "91389681247993671255432112000000";
string negativeString = "-90315837410896312071002088037140000";
BigInteger posBigInt = 0;
BigInteger negBigInt = 0;
try
{
posBigInt = BigInteger.Parse(positiveString);
Console.WriteLine(posBigInt);
}
catch (FormatException)
{
Console.WriteLine("Unable to convert the string '{0}' to a BigInteger value.", positiveString);
}
我尝试使用自己的示例,它正在工作
string positiveString = "91389681247993671255432112000000";
string negativeString = "-90315837410896312071002088037140000";
BigInteger b = BigInteger.Parse(positiveString);
BigInteger c = BigInteger.Parse(positiveString);
BigInteger d = b * c;
System.Console.WriteLine(d);
System.Console.ReadLine();
// result 835207383860988607360648144841987935757186784078054400000000000