在不久的将来,我一直在研究小数类型以获得一些可能的编程乐趣,并希望将它用作比 Int64 更大的整数。一个关键点是我需要找出我可以安全地存储为小数(不丢失精度)的最大整数;我这样说,因为显然它在那里使用了一些 float ,作为程序员,我们都知道只有 float 才能给我们带来的爱。
那么,有谁知道我可以插入其中的最大整数吗?
另外,有没有人有玩过长整型数组的经验?它用于此项目之后的项目。
谢谢, -R
最佳答案
decimal
与 float
和 double
的工作方式不同 - 它总是有足够的信息来存储整数精度,因为最大指数是 28,它有 28-29 位精度。您可能对我在 decimal floating point 上的文章感兴趣和 binary floating point在 .NET 上更仔细地查看差异。
因此您可以在 [decimal.MinValue, decimal.MaxValue]
范围内存储任何整数,而不会丢失任何精度。
如果你想要比这更宽的范围,你应该使用BigInteger
正如 Fredrik 所提到的(假设您使用的是 .NET 4,当然......我相信有适用于早期版本的 .NET 的第 3 方版本)。
关于C#:十进制 -> 可以精确存储的最大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148074/