C#中的大量数字,不使用BigInteger

时间:2017-08-04 23:11:41

标签: c#

我将JavaScript游戏移植到C#中,这个游戏的一个有趣特点是有数十种资源从每秒分数增长到超过每秒数千甚至数千。

我需要能够每秒多次对这些数字进行标准的数学运算/字符串格式...主要是作为资源累积和除法的补充,以显示我可以用y购买多少x或者多久#39在每秒进步的情况下,我会完成一个目标。

在C#中,我尝试过使用各种第三方大数解决方案(Rational / BigDecimal / BigFloat),所有这些解决方案都使用了System.Numerics.BigInteger ......我尝试过只使用BigIntegers 。所有这些都是功能性的,但遭受不可接受的性能。

我的用例并不需要任意大(预期的实际范围是+/- e5000)或精确(小数点后6位)数字但我需要简单的数学运算比BigInteger提供的要快得多。这个问题的潜在解决方案是什么?

编辑1 - JS游戏使用BigDecimal.js ......当数字变得非常大时,游戏也会出现性能问题。

编辑2 - 对于任何向下投票的人,我真的很感激为什么要解释。

编辑3 - 重新描述为单个问题/更多关于主题。

1 个答案:

答案 0 :(得分:2)

Here是一个四重浮点数(128位)的库,具有64位精度和64位指数。我没有使用它,但考虑到你想要完成的事情,它看起来似乎是合理的。