是否有可能做到这一点?
double variable; variable = 5; /* the below should return true, since 5 is an int. if variable were to equal 5.7, then it would return false. */ if(variable == int) { //do stuff }
我知道代码可能不会这样,但它是怎么 回事 ?
if ((variable == Math.floor(variable)) && !Double.isInfinite(variable)) { // integer type }
这将检查 double 的向下舍入值是否与 double 相同。
您的变量可以有一个 int 或 double 值,并且Math.floor(variable)总是有一个 int 值,所以如果您的变量等于,Math.floor(variable)那么它必须有一个 int 值。
Math.floor(variable)
如果变量的值是无限的或负无限的,这也不起作用,因此在条件中添加“只要变量不是无限的”。