如何存储BIG int值

本文关键字:BIG int 存储 何存储 | 更新日期: 2023-09-27 18:15:57

如果您必须持有大于ulong类型所能持有的数字(0到18446744073709551615(,您会使用什么?例如测量行星或星系之间的距离?

如何存储BIG int值

对于最多需要28位数字的值,可以使用System.Decimal。按照它的设计方式,你不会遇到double的缩放问题,其中对于大数字,两个相邻数字之间的差距大于1。诚然,这看起来有点奇怪,因为decimal通常用于非整数值,但在某些情况下,我认为这是一个非常合理的使用,只要你正确地记录它。

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

另一种选择是只使用double,并接受你真的没有得到整数的精度。当谈到星系之间的距离时,你真的会有一个精确到一米的值吗?这确实取决于你将如何使用它-如果你使用一个很好预测的整数类型,它肯定会让测试变得更简单,但你应该真正考虑这些值将去哪里,以及你将如何处理它们。

我很怀疑你是否需要整数类型来存储星系之间的距离。据我所知,在少数情况下,如(演示(加密,需要非常大的整数值。对于这些情况,可以使用System.Numerics.BigInteger

我认为您应该使用浮点类型(例如double(来达到您所描述的目的。