我在C#Winform应用程序中制作科学计算器。因为我使用double来存储从函数e ^ x的计算中检索到的答案。但是数据类型double有一些限制,如果它超过它显示溢出相关的错误。那么你能告诉我在C#中存储数字的最大数据类型是什么。
示例:100!
答案 0 :(得分:4)
double
是C#中最大的浮点精度数据类型。您有BigInteger
,但不是BigFloat
或BigDouble
。
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}}