存储数字的最大数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储数字的最大数据类型相关的知识,希望对你有一定的参考价值。
我在C#Winform应用程序中制作科学计算器。因为我使用double来存储从函数e ^ x的计算中检索到的答案。但是数据类型double有一些限制,如果它超过它显示溢出相关的错误。那么你能告诉我在C#中存储数字的最大数据类型是什么。
示例:100!
double
是C#中最大的浮点精度数据类型。你有BigInteger
,但不是BigFloat
或BigDouble
。
然而,在Base Class Library on CodePlex有一个BigRational
的实现,实际上是两个BigInteger
s:
从那里网站:
BigRational构建在.NET Framework 4中引入的BigInteger上,以创建任意精度的有理数类型。有理数是两个整数之间的比率,在这个实现中,BigIntegers用于分子和分母。
具有可能值的数据类型如下:
您应该考虑使用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,值太大或太小。
static void Main(string[] args)
{
Console.WriteLine("Geef een getal in?");
double getal1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Geef een tweede getal in?");
double getal2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Geef een derde getal in?");
double getal3 = Convert.ToDouble(Console.ReadLine());
if (getal1 > getal2 && getal1 > getal3)
{
Console.WriteLine(getal1 + "is het grootste getal");
}
if (getal2 > getal1 && getal2 > getal3)
{
Console.WriteLine(getal2 + "is het grootste getal");
}
if( getal3 > getal2 && getal3 > getal1 )
{
Console.WriteLine(getal3 + "is het grootste getal");
}
}
以上是关于存储数字的最大数据类型的主要内容,如果未能解决你的问题,请参考以下文章