C#制作一个分阶段的货币系统



我在问自己,"在Unity中用C#和money阶段创建一个货币系统的最佳方式是什么&";。

我已经有一些代码(不能按照我想要的方式工作(可以做到这一点,但这样做感觉不对。。。总有一个小小的想法,这是行不通的,因为最大int数是2.147.483.647,我当然想比它更高。

public string moneyFormatter (int num)
{
if (num >= 1000000000)
return (num / 1000000).ToString("#,0B");
if (num >= 100000000)
return (num / 1000000000).ToString("0.#") + "B";
if (num >= 10000000)
return (num / 1000000).ToString("#,0M");
if (num >= 1000000)
return (num / 1000000).ToString("0.#") + "M";
if (num >= 100000)
return (num / 1000).ToString("#,0K");
if (num >= 10000)
return (num / 1000).ToString("#,0K");
return num.ToString("#,0");
}

我已经完全做错了吗?

这些游戏中的大多数都使用像double这样的浮点,它可以以精度为代价提供超过10^308。

如果您想要精度,但需要速度和内存使用成本,请查看BigInteger。

最新更新