Java如何测试双精度数是否为整数

是否有可能做到这一点?

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

}

这将检查双精度值的四舍五入值是否与双精度值相同。

你的变量可能具有intdouble值,并且Math.floor(variable)始终具有int值,因此,如果你的变量等于,Math.floor(variable)则它必须具有int值。

如果变量的值是无穷大或负无穷大,那么这也不起作用,因此向条件添加“只要变量不是无穷大”。

以上是 Java如何测试双精度数是否为整数 的全部内容, 来源链接: utcz.com/qa/421160.html

回到顶部