x = 3.999999999999999 z = x * 4 ? z && Prints 16.000000000000000 ? int(z) && Prints 15In the above it is the ? x that is wrong not the INT(x). x is not 16, but is close to but below 16. INT(x) does exactly what it should do which is to return the integer portion of the value regardless of the decimal portion.