存储数字的最大数据类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储数字的最大数据类型相关的知识,希望对你有一定的参考价值。

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

示例:100!

答案

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

然而,在Base Class Library on CodePlex有一个BigRational的实现,实际上是两个BigIntegers:

从那里网站:

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

另一答案

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

enter image description here

参考链接:https://social.msdn.microsoft.com/Forums/vstudio/en-US/921a8ffc-9829-4145-bdc9-a96c1ec174a5/decimal-vs-double-difference?forum=csharpgeneral

另一答案

您应该考虑使用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");
        }
    }

以上是关于存储数字的最大数据类型的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据类型 - 数字类型 - 数字类型语法

mysqldecimal数据类型

如何存储极大的数字?

“decimal”是啥类型的MySQL?

#yyds干货盘点#JS两个大数相加

SQL 基础部分