如何在C#中初始化BigInteger?

3

5
在尝试添加 using 语句之前,你是否已经将 System.Numerics DLL 添加为引用? - Justin Niessner
7个回答

9

应该已经有了,你记得添加引用了吗?

右键点击你的项目,点击“添加引用”,然后在最左边的选项卡中选择“System.Numerics”。

然后你就可以添加并使用它了。


3
你需要按照其他答案中提到的方法添加引用 System.Numerics,如果你已经安装了 .NET 4,那么 System.Numerics.dll 应该已经存在。
然后,如果你要处理的值确实很大,并且尝试使用:
var myBigInteger = new BigInteger(50000000000000000000000000000000000000000000);

您将会收到一条编译错误信息:

编译常量值错误

最简单的解决方法是使用文本字面量:

var myBigInteger = BigInteger.Parse("50000000000000000000000000000000000000000000");

2

你的项目针对的是哪个版本的.NET 4?确保它针对整个框架而不是客户端配置文件。 我刚刚确认,System.Numerics.dll是.NET 4客户端配置文件的一部分,所以这不应该是问题所在。

完成后,请确保您的项目中也已引用了System.Numerics.dll


2

您的项目引用了System.Numerics.dll吗?


2

确保您引用了System.Numerics,否则您将看不到该命名空间。MSDN文档是查看需要引用哪些程序集以获取哪些命名空间的好来源。


1
如果在Visual Studio 2010中,您需要手动添加程序集引用到您的项目中。您可以通过“添加引用” > “.NET”,并向下滚动直到找到System.Numerics(即System.Numerics.dll)版本4.0.0.0,并选择它来完成此操作。
完成上述步骤后,您需要将以下using语句添加到您的代码中:
using System.Numerics;

然后要初始化一个BigInteger,有几种方法:

你可以这样做:

BigInteger x = new BigInteger();
x = BigInteger.Zero; // initializes x to 0
x = BigInteger.One; // initializes x to 1

或者你可以使用带整型字面量的构造器

BigInteger x = new BigInteger();
x = BigInteger(0); // initializes x to 0
x = BigInteger(1); // initializes x to 1

更简单

BigInteger x;
x = 0; // initializes x to 0
x = 1; // initializes x to 1

这种方法在C#和VB.NET中可以正常工作,但是其他一些语言不支持使用文字字面量来初始化BigInteger,例如:JScript.NET、Phalanger。


-1

前提条件:.NET Framework 4

步骤:

  1. 添加引用 System.Numerics.dll
  2. 在您的类中添加 Imports System.Numerics

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接