基于int生成float
Generating float based on int
我正在制作板球游戏,所以如果您对板球有一点了解,您将很容易理解这个问题。
我被困在一个我无法弄清楚的逻辑上。这是关于总轮数。 (1 over 意味着玩家将投出 6 个球,相同的 2 overs 意味着 12 个球,依此类推)。
如果超过 1
,剩下的球是 6
。为了显示完成了多少轮,我必须以一种形式显示它:
0.4
<-(第 4 球第 1 轮) 或
1.3
<-(第 2 轮的第 3 个球)
同样,当数字达到 0.6
时,它将等于 1
所以我有 int
中的信息并想将其显示为 float
。关于如何实现这一目标的任何合乎逻辑的建议。
根本不要使用浮点数,因为你可能会得到浮点数错误。要存储离散量,请使用 int。将球的总数存储为一个整数,当你想显示它时,除以 6 得到 overs 并取模 6 得到余数(它是 over 的哪个球)。如果您想从 1 而不是 0 开始为您的球编号,请加 1。
int balls = 62; // example value
printf("%d.%d", balls / 6, (balls % 6) + 1);
应该输出 10.3(第 11 局的第三球)
当球数为零时,它是第一轮的第一个球 (0.1)。
如果坚持要有浮点数,可以这样转换:
float overs = (float)(balls / 6) + ((float)((balls % 6) + 1) * 0.1f);
我正在制作板球游戏,所以如果您对板球有一点了解,您将很容易理解这个问题。
我被困在一个我无法弄清楚的逻辑上。这是关于总轮数。 (1 over 意味着玩家将投出 6 个球,相同的 2 overs 意味着 12 个球,依此类推)。
如果超过 1
,剩下的球是 6
。为了显示完成了多少轮,我必须以一种形式显示它:
0.4
<-(第 4 球第 1 轮) 或 1.3
<-(第 2 轮的第 3 个球)
同样,当数字达到 0.6
时,它将等于 1
所以我有 int
中的信息并想将其显示为 float
。关于如何实现这一目标的任何合乎逻辑的建议。
根本不要使用浮点数,因为你可能会得到浮点数错误。要存储离散量,请使用 int。将球的总数存储为一个整数,当你想显示它时,除以 6 得到 overs 并取模 6 得到余数(它是 over 的哪个球)。如果您想从 1 而不是 0 开始为您的球编号,请加 1。
int balls = 62; // example value
printf("%d.%d", balls / 6, (balls % 6) + 1);
应该输出 10.3(第 11 局的第三球)
当球数为零时,它是第一轮的第一个球 (0.1)。
如果坚持要有浮点数,可以这样转换:
float overs = (float)(balls / 6) + ((float)((balls % 6) + 1) * 0.1f);