【发布时间】:2018-10-09 11:35:07
【问题描述】:
我正在开发一款闲置的点击游戏,一切似乎都很完美,直到货币价值超过 20 亿,然后价值变为负数。似乎统一播放器的价值超过 2,154,000,000 有问题......我该如何解决这个,下面的代码保存并加载分数..
public int LoadCoinsAmount()
{
return PlayerPrefs.GetInt("COINS");
}
public void SaveCoinsAmount(int coins)
{
PlayerPrefs.SetInt("COINS", coins);
}
..请帮忙
【问题讨论】:
-
这是一个数学溢出,你使用一个 int 作为变量,他的最大值是 2,147,483,647。将其更改为 double 或 float 以表示更高的数字。
-
@AlbertoCh 显而易见的选择是下一个最宽的 integral 类型 (
long),而不是切换到 IEEE 浮点数。 -
在这种情况下,您甚至可以选择
System.Numerics.BigInteger -
所有这些建议都很棒,但没有得到 OP 的确认,它们都是猜测。请提供您的“货币价值”上限的详细信息,这样您就不会得到一堆令人困惑和相互矛盾的建议。