正确的方法来存储具有最大性能的非常大的整数?

时间:2015-10-15 04:03:07

标签: c# unity3d

所以我正在制作一款游戏,我希望以数万亿和数十亿(一种渐进式游戏,一种点击式英雄,只是为了好玩而存储非常大的数字)。

无论如何,c#似乎对整数有32位的限制,但是,我可以得到非常大的浮点数(例如999999999999999.0f)

但是,这是在C#中存储大量数字的最快方法吗?

我不需要准确性,所以浮点型解决方案很好。我只需要速度和存储非常大的整数的能力。

BigInt库是否可行?你怎么推荐这个呢?

2 个答案:

答案 0 :(得分:4)

  

无论如何,c#似乎对整数有32位的限制,但是,我可以得到非常大的浮点数(例如999999999999999.0f)

这绝对是错误的。 C#具有longulong类型,它们对应于.NET的Int64UInt64类型,它们都是64位整数,表示数字范围:

Int64 : -9,223,372,036,854,775,808 to  9,223,372,036,854,775,807
UInt64:                          0 to 18,446,744,073,709,551,615.

这' S:

  

18个 quintillion ,444万亿,7.54万亿,73亿,7亿9千5 15。

如果你需要存储更大的数字,你可以通过将两个UInt128值加在一起并使用教科书技术将两者结合起来进行常见的算术运算来实现自己的UInt64

答案 1 :(得分:-1)

我已经看到很多游戏为此目的使用双打。