如何检查值是否为整数类型?

2022-08-31 14:52:39

我需要检查一个值是否是整数。我发现了这个:如何检查输入值是整数还是浮点数?,但如果我没有记错的话,即使本身确实是一个.of,那里的变量仍然是类型的。doubleinteger


答案 1

如果输入值可以是整数以外的数字形式,则检查

if (x == (int)x)
{
   // Number is integer
}

如果传递字符串值,请使用 请确保在转换失败时使用 try catch 进行错误处理。Integer.parseInt(string_var).


答案 2

如果你有一个双精度/浮点数/浮点数,并且想看看它是否是一个整数。

public boolean isDoubleInt(double d)
{
    //select a "tolerance range" for being an integer
    double TOLERANCE = 1E-5;
    //do not use (int)d, due to weird floating point conversions!
    return Math.abs(Math.floor(d) - d) < TOLERANCE;
}

如果你有一个字符串,并且想要查看它是否是一个整数。最好不要抛出结果:Integer.valueOf()

public boolean isStringInt(String s)
{
    try
    {
        Integer.parseInt(s);
        return true;
    } catch (NumberFormatException ex)
    {
        return false;
    }
}

如果你想看看某物是否是一个 Integer 对象(因此包装了一个):int

public boolean isObjectInteger(Object o)
{
    return o instanceof Integer;
}