我正在做一些人口建模(为了好玩,主要是为了使用承载能力和后勤功能的概念)。该模型适用于多个行星(目前约有100,000个行星)。当人口达到一个星球的承载能力时,居民开始分支到附近的行星,依此类推。

问题:超过10万颗行星可以容纳很多人。不仅仅是C# Decimal 可以处理。由于我正在使用这些数字进行平均和其他工作,我需要能够使用浮点(或者我只使用BigInt库)。

有没有人知道我可以使用的BigFloatingPoint类(或其他什么)?谷歌今天非常无益。我可以编写一个可以运行得很好的类,但是如果存在这样的话,我宁愿使用预先存在的东西。

有帮助吗?

解决方案

使用megapeople的单位来获得更多的空间。

此外,如果我的算术是对的。你确定这还不够吗?

其他提示

即使每个星球上有1000亿人,但总数仍然只有1E16。这完全在有符号的64位整数的限制范围内(2 ^ 63到9,223,372,036,854,775,807,差不多是1E19 ...

在你接近极限之前,你可以在每个星球上拥有数百万人,拥有10万个行星......

对于分数和平均值等,当你进行任何这样的计算时,你不能转换成Float或double吗?

你真的需要28位精度吗?你可以使用浮点进行一些计算吗?

(确切地说是双倍:± 5.0e− 324到± 1.7e308)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top