假设您有大整数,如1253999939979969998746和9999999999.无论如何在C#中乘以这些大整数?
注意:我已经尝试System.Numerics.BigInteger
类构造函数编译器说整数太长。
你的建议是什么?
如果这个问题超出主题,请告诉我。答案 0 :(得分:8)
您需要使用BigInteger.Parse
。
BigInteger num = BigInteger.Parse("1253999939979969998746");
如果您尝试使用如下所示的整数值
BigInteger num = 1253999939979969998746;
右侧需要有一个类型,默认情况下会是Int32
或long
。但由于数字太大而不能成为Int32
或long
,转换会失败,因此会出现错误。
正如Tim Schmelter在评论中指出的那样,为了进行乘法,你可以做到以下几点:
BigInteger num = BigInteger.Multiply(BigInteger.Parse("1253999939979969998746"),
BigInteger.Parse("9999999999"));
答案 1 :(得分:4)
BigInteger类型是一个表示一个的不可变类型 任意大整数,其理论上的值没有上限或下限 界限。
示例:
var num1 = BigInteger.Parse("1253999939979969998746");
var num2 = BigInteger.Parse("9999999999");
var result = BigInteger.Multiply(num1, num2);
注意:命名空间:System.Numerics
答案 2 :(得分:1)
System.Numberics.BigInteger没有值的上限或下限。所以你提到的数字可以由BigInteger类处理。
编译器抱怨,因为您可能正在尝试从整数初始化BigInteger。您需要使用字节数组或从字符串解析来初始化它。