存储数字的最大数据类型

时间:2014-07-21 20:50:39

标签: c# .net numbers double

我在C#Winform应用程序中制作科学计算器。因为我使用double来存储从函数e ^ x的计算中检索到的答案。但是数据类型double有一些限制,如果它超过它显示溢出相关的错误。那么你能告诉我在C#中存储数字的最大数据类型是什么。

示例:100!

4 个答案:

答案 0 :(得分:4)

double是C#中最大的浮点精度数据类型。您有BigInteger,但不是BigFloatBigDouble

Base Class Library on CodePlex中有一个BigRational的实现,实际上是两个BigInteger

从那里网站:

  

BigRational构建于.NET Framework 4中引入的BigInteger上,用于创建任意精度的有理数类型。有理数是两个整数之间的比率,在这个实现中,BigIntegers用于分子和分母。

答案 1 :(得分:1)

答案 2 :(得分:0)

您应该考虑使用System.Numerics.BigInteger数据类型。它代表一个任意大的有符号整数。它们几乎没有任何限制,不像你必须观察到.Net框架中可用的各种其他数字数据类型。您可以阅读更多相关信息here

要使用此结构,您需要在C#项目中引用System.Numerics.dll并在代码文件顶部包含以下命名空间:

using System.Numerics;

您可以通过this发布有关如何添加所需参考资料的帖子,以防您卡在某处。

下面的代码正常工作:

var aVeryVeryHugeNumber = System.Numerics.BigInteger.Parse("31415926535897932384626433832795");

如果您尝试使用ulong.Parse解析代表数字的巨大字符串,则会生成System.OverflowException以下消息:

  

对于UInt64,值太大或太小。

答案 3 :(得分:-2)

{{1}}