【发布时间】:2012-08-05 05:22:41
【问题描述】:
在我的游戏中,我必须实现一个功能,将一个数字除以 3 并使其成为一个整数。即不是 3.5 或 2.6 等....
应该是一个整数,比如 3 或 5。
有人知道我该怎么做吗?
【问题讨论】:
在我的游戏中,我必须实现一个功能,将一个数字除以 3 并使其成为一个整数。即不是 3.5 或 2.6 等....
应该是一个整数,比如 3 或 5。
有人知道我该怎么做吗?
【问题讨论】:
Math.Round(num / 3);
或
Math.Ceiling(num / 3);
或
Math.Truncate(num / 3);
【讨论】:
num 是否为整数非常重要。如果num 是浮点类型(或decimal),那么上面的答案是有道理的。另一方面,如果num 是整数类型,如int,则除法将已经截断以返回整数结果。为避免这种情况,请将分母写为3.0 而不仅仅是3。 或将分子或分母转换为double(如上面的评论)。
除以三和四舍五入可以用数学函数完成:
int xyzzy = Math.Ceiling (plugh / 3);
或者,如果输入是整数,则根本没有函数:
int xyzzy = (plugh + 2) / 3;
这也可以用更通用的方式完成,“除以n,四舍五入”:
int xyzzy = (plugh + n - 1) / n;
Ceiling 函数用于显式四舍五入(朝向正无穷大)。舍入还有许多其他变体(下限、截断、舍入到偶数、从零舍入等),可以在in this answer 找到。
【讨论】:
找到this,它说如果你把数字除,加二,再除以三,你会得到正确的答案。例如,7/3 = 2.3,但 (7+2)/3 = 3。
【讨论】:
/ 以不同的方式完成,这使得它可以工作。