基于int生成float

时间:2015-01-29 08:55:43

标签: objective-c ios8 floating-point int

我正在制作一个板球比赛,所以如果你对板球有一点了解,你就会很容易理解这个问题。
我陷入了一个我无法弄清楚的逻辑。它涉及总数。 (1超过意味着玩家将投掷6个球,相同的2个超过意味着12个球等等。)
我已经能够获得如果超过1个球是{{1 }}。为了显示完成了多少次,我必须以一种形式显示它:
6&lt ;-(第1球的第4球)或者0.4&lt ;-(第二球的第三球)同样当数字达到1.3时,它将等于0.6

因此,我在1中提供了相关信息,并希望将其显示为int。关于如何实现这一点的任何逻辑建议。

1 个答案:

答案 0 :(得分:3)

根本不要使用浮点数,因为你可能会遇到浮点错误。要存储离散量,请使用int。将球的总数存储为int,当你想显示它时,除以6得到结束并取模6以得到余数(其上面的球是)。如果你想要从1开始,而不是从0开始,你可以加上1。

int balls = 62; // example value
printf("%d.%d", balls / 6, (balls % 6) + 1);

输出10.3(第11球的第3球)

当球为零时,它是第一个球的第一个球(0.1)。

如果您坚持使用浮动,您可以这样转换:

float overs = (float)(balls / 6) + ((float)((balls % 6) + 1) * 0.1f);