小编典典

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

all

是否有可能做到这一点?

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
}

我知道代码可能不会这样,但它是怎么 回事


阅读 106

收藏
2022-07-12

共1个答案

小编典典

if ((variable == Math.floor(variable)) && !Double.isInfinite(variable)) {
    // integer type
}

这将检查 double 的向下舍入值是否与 double 相同。

您的变量可以有一个 int 或 double 值,并且Math.floor(variable)总是有一个 int
值,所以如果您的变量等于,Math.floor(variable)那么它必须有一个 int 值。

如果变量的值是无限的或负无限的,这也不起作用,因此在条件中添加“只要变量不是无限的”。

2022-07-12