C# 分阶段赚钱系统
C# Make a money system with stages
我在问自己,“在 Unity 中使用 C# 和货币阶段创建货币系统的最佳方式是什么,就像 this game 所做的那样?”。
我已经有一些代码(不能按我想要的方式工作)有点像这样做,但是这样做感觉不对...总有一个小小的想法,那就是行不通,因为最大 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");
}
我是不是已经完全错了?
这些游戏中的大多数使用 Floating-point 之类的 double
,这可以让您以精度为代价达到 10^308 以上。
如果您想要精度但又要以速度和内存使用为代价,请查看 BigInteger。
我在问自己,“在 Unity 中使用 C# 和货币阶段创建货币系统的最佳方式是什么,就像 this game 所做的那样?”。
我已经有一些代码(不能按我想要的方式工作)有点像这样做,但是这样做感觉不对...总有一个小小的想法,那就是行不通,因为最大 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");
}
我是不是已经完全错了?
这些游戏中的大多数使用 Floating-point 之类的 double
,这可以让您以精度为代价达到 10^308 以上。
如果您想要精度但又要以速度和内存使用为代价,请查看 BigInteger。