我正在制作一个板球比赛,所以如果你对板球有一点了解,你就会很容易理解这个问题。
我陷入了一个我无法弄清楚的逻辑。它涉及总数。 (1超过意味着玩家将投掷6个球,相同的2个超过意味着12个球等等。)
我已经能够获得如果超过1
个球是{{1 }}。为了显示完成了多少次,我必须以一种形式显示它:
6
&lt ;-(第1球的第4球)或者0.4
&lt ;-(第二球的第三球)同样当数字达到1.3
时,它将等于0.6
因此,我在1
中提供了相关信息,并希望将其显示为int
。关于如何实现这一点的任何逻辑建议。
答案 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);