使用double值作为GKLeaderboard的分数?

时间:2011-05-16 20:19:35

标签: iphone objective-c cocoa-touch gamekit

我想知道是否有办法在GKLeaderboard上使用双值?它坚持我使用int64_t,但我需要使用双值,因为排行榜是最快的时间,计数到六个小数点。

2 个答案:

答案 0 :(得分:0)

由于您需要一个低至数百万的十进制数,一个解决方案是简单地乘以1,000,000并强制转换为int64_t

int64_t intScore = (int64_t)1000000 * doubleScore;

然后当你拿回比分时:

double doubleScore = (double)intScore / 1000000;

答案 1 :(得分:0)

如果您使用微秒级精度进行测量,则可以将单位设置为微秒而不是秒。然后你可以使用整数。

(同样,货币永远不应该表示为浮点值,而是表示您想要考虑的最小金额的整数值 - 因此美元将是100(美分)而不是1.0(美元)。 )