c# - 如何存储 BIG int 值

标签 c#

如果您必须保存大于 ulong 类型可以容纳的数字(0 到 18,446,744,073,709,551,615),您会使用什么?例如测量行星或星系之间的距离?

最佳答案

对于只需要最多 28 位数字的值,您可以使用 System.Decimal 。按照它的设计方式,您不会遇到使用 double 所遇到的缩放问题,对于较大的数字,两个相邻数字之间的间隙大于 1。不可否认,这看起来有点奇怪,因为 十进制通常用于非整数值 - 但在某些情况下,我认为这是一个完全合理的使用,只要您正确记录它。

对于大于该值的值,您可以使用 System.Numerics.BigInteger .

另一种替代方法是仅使用 double 并接受您确实无法获得低至整数的精度。当谈到星系之间的距离时,你真的会得到一个精确到一米的值吗?它确实取决于您将如何使用它 - 如果您使用可很好预测的整数类型,它肯定可以使测试更简单,但您应该真正考虑这些值将去往何处你打算用它们做什么。

关于c# - 如何存储 BIG int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054879/

相关文章:

c# - Controls.Add(tabPage) 与 TabPages.Add(tabPage)

c# - 在.NET中使用Win32 API模拟按钮点击

c# - .NET Core 2.0 - 仍然看到没有 'Access-Control-Allow-Origin' header 错误

c# - 让 Jenkins 作业更快地从 GIT 下载代码

c# - C#中如何区分普通exe文件和自解压文件?

c# - 代他人在线信用卡支付处理

c# - 需要 C# Regex 来获取句子中的单词对

c# - 防止我的控制台应用程序在 .Net.Timer 启动后关闭

c# - 使用接口(interface)实现约束 C# 泛型参数

c# - MVC 中 Controller 操作命名的一致性