C# 用于存储数字的最大数据类型

C# 用于存储数字的最大数据类型,c#,.net,numbers,double,C#,.net,Numbers,Double,我正在用C#Winform应用程序制作一个科学计算器。因为我使用double来存储从函数e^x的计算中检索到的答案。但是数据类型double有一些限制,如果它超过了,那么它将显示与溢出相关的错误。那么你能告诉我在C#中存储数字的最大数据类型是什么吗 示例:100 double是C#中最大的浮点精度数据类型。您有,但没有BigFloat或bigdoull 但是,在的实现中,实际上有两个bigingers: 从该网站: BigRational基于.NETFramework4中引入的BigIntege

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


示例:100

double
是C#中最大的浮点精度数据类型。您有,但没有
BigFloat
bigdoull

但是,在的实现中,实际上有两个
biginger
s:

从该网站:

BigRational基于.NETFramework4中引入的BigInteger来创建任意精度的有理数类型。有理数是两个整数之间的比率,在这个实现中,大整数用于分子和分母


具有可能值的数据类型如下所示:


参考链接:

你应该考虑使用<代码> Stasy.NoalICs.BigType < /Cord>数据类型。它表示任意大的有符号整数。它们几乎没有任何限制,这与您必须遵守的.Net framework中其他各种可用数据类型的限制不同。你可以阅读更多关于它的内容

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

using System.Numerics;
你可以通过这篇文章来了解如何添加所需的参考资料,以防你被困在某个地方

下面的代码只起作用:

var aVeryVeryHugeNumber = System.Numerics.BigInteger.Parse("31415926535897932384626433832795");
如果您试图解析这样一个表示数字的巨大字符串,即使使用
ulong.parse
也会导致
System.OverflowException
,并显示以下消息:

值对于UInt64太大或太小


如果你得到100的溢位,还有其他一些地方出了问题!双人。结果约为9.3326215444e+157,完全在有限IEEE 754 64位二进制数的范围内。当然,它不能精确地表示为双精度。
var aVeryVeryHugeNumber = System.Numerics.BigInteger.Parse("31415926535897932384626433832795");