C#:十进制 -> 可以精确存储的最大整数

标签 c# .net

在不久的将来,我一直在研究小数类型以获得一些可能的编程乐趣,并希望将它用作比 Int64 更大的整数。一个关键点是我需要找出我可以安全地存储为小数(不丢失精度)的最大整数;我这样说,因为显然它在那里使用了一些 float ,作为程序员,我们都知道只有 float 才能给我们带来的爱。

那么,有谁知道我可以插入其中的最大整数吗?

另外,有没有人有玩过长整型数组的经验?它用于此项目之后的项目。

谢谢, -R

最佳答案

decimalfloatdouble 的工作方式不同 - 它总是有足够的信息来存储整数精度,因为最大指数是 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/

相关文章:

.net - 如何在 VB.NET 中比较小数点后两位的数字

.net - Parallel.ForEach 比普通的 foreach 快吗?

c# - LINQ To Entities 包含不区分大小写的搜索

c# - 有没有更简单的方法来进行此查询?

c# - 转换 EPSG :4326 projection to EPSG:3857 mercator

c# - 调用 new SqlConnection() 挂起程序

.net - 为什么ToString()舍入我的 double 值?

c# - 需要帮助选择接口(interface)名称

c# - 使用 gdi+ (C#) 将 png 转换为 gif

c# - 在 C# 泛型中无效?