Java - How to check if a division is an integer or a float?

division, int, java, math, operation

Solution

Since all ints which are divisible by 16 will have their last 4 bits all set to 0. You can accomplish what you want without a loop or even an if statement:

i &= 0xfffffff0; // Sets i to the greatest multiple of 16 less than i, or 0 for i < 16

For example:

int i = 50;
i &= 0xfffffff0; // i == 48

i = 39;
i &= 0xfffffff0; // i == 32

i = 16;
i &= 0xfffffff0; // i == 16

Problem

Couldnt think of a better title. Well the problem is: I have the "int i", it can be any value. my goal is to transform the "int i" to the closest number divisible by 16. For example, I got i = 33. Then i will be turned to 32 (16x2).But if I get i = 50, then it will be turned to 48 (16x3). I tried many things for example: ``` for (int x = i; x < 999; x++){ if ( (i - x)/16 *is an integer*){ i = i - x; } ``` But I dont know how to check if its an integer. So maybe my previous code work, but I just need to find a way to check if its an integer or a float. So.. any help is appreciated.

Original source