【发布时间】:2012-03-15 15:04:52
【问题描述】:
我在 App Store 上有一款游戏,我收到报告称分数准确且报告有误。我几乎所有的数学都使用了 long long。不幸的是,在大约 20 亿时,我的数学开始失败,因为分数变得太大了。
是否有解决数据类型大小限制的标准方法?怎么样?
【问题讨论】:
-
一个 unsigned long long 是 64 位的,它可以保存一个最大值 18446744073709551615 ,你的数学很可能会变坏,因为在某个地方用一个 int 或 long 做算术,它的最大值刚好高于 2十亿。
-
如果您想要极高的精度,也可以使用 NSDecimalNumber。
-
int的最大值约为 20 亿 - 您可能在某个地方错误地使用了它 (它可能是隐含的,例如调用返回int但是的内置函数您将其分配给long long)
标签: objective-c math types int long-long