【发布时间】:2012-08-19 08:22:55
【问题描述】:
想不出更好的标题。 那么问题是: 我有“int i”,它可以是任何值。我的目标是将“int i”转换为可被 16 整除的最接近的数字。
例如,我得到了 i = 33。然后我将变成 32 (16x2)。但是如果我得到 i = 50,那么它将变成 48 (16x3) .
我尝试了很多东西,例如:
for (int x = i; x < 999; x++){
if ( (i - x)/16 *is an integer*){
i = i - x;
}
但我不知道如何检查它是否为整数。所以也许我以前的代码可以工作,但我只需要找到一种方法来检查它是整数还是浮点数。所以..任何帮助表示赞赏。
【问题讨论】:
-
两个整数的除法总是有一个整数结果。您可以改用模数 (
%)。 -
FWIW,我建议尝试不同的方法来解决这个问题。这种循环查找可以从 i 中减去的数字以获得 16 的倍数的方法非常低效。如果 16 的最接近的倍数大于 i 怎么办?
标签: java math int division operation