65

値が整数かどうかを確認する必要があります。私はこれを見つけました:入力値が整数であるか浮動小数点であるかを確認する方法は?、しかし、私が間違っていなければ、自体が実際に。doubleであっても、そこにある変数はまだ型のままです。integer

4

12 に答える 12

103

入力値を integer 以外の数値形式にすることができる場合は、

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

文字列値が渡される場合はInteger.parseInt(string_var). 、変換に失敗した場合に備えて try catch を使用してエラー処理を確認してくださいを使用します。

于 2012-09-24T02:59:16.443 に答える
29

double/float/floating point の数値があり、それが整数かどうかを確認したい場合。

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;
}
于 2012-09-24T03:52:17.767 に答える
8

多分この方法で試してください

try{
    double d= Double.valueOf(someString);
    if (d==(int)d){
        System.out.println("integer"+(int)d);
    }else{
        System.out.println("double"+d);
    }
}catch(Exception e){
    System.out.println("not number");
}

ただし、整数の範囲外のすべての数値( "-1231231231231231238"など)はdoubleとして扱われます。その問題を取り除きたい場合は、この方法で試すことができます

try {
    double d = Double.valueOf(someString);
    if (someString.matches("\\-?\\d+")){//optional minus and at least one digit
        System.out.println("integer" + d);
    } else {
        System.out.println("double" + d);
    }
} catch (Exception e) {
    System.out.println("not number");
}
于 2012-09-24T03:01:20.000 に答える
8

演算子を使用してinstanceof、値が整数かどうかを判断する必要があります。

オブジェクト object = your_value;

if(object instanceof Integer) {

Integer integer = (Integer) object ;

} else {
 //your value isn't integer
}
于 2015-09-20T19:54:14.550 に答える
5

文字列が整数かどうかを確認する関数は次のとおりです。

public static boolean isStringInteger(String number ){
    try{
        Integer.parseInt(number);
    }catch(Exception e ){
        return false;
    }
    return true;
}
于 2016-11-25T10:54:57.673 に答える
1

最初にそれが数字かどうかを確認する必要があります。その場合は、Math.Roundメソッドを使用できます。結果と元の値が等しい場合、それは整数です。

于 2014-08-05T13:46:00.423 に答える
1

文字列に整数を表す数字が含まれているかどうかを確認するには、 を使用できますInteger.parseInt()

double に整数になる値が含まれているかどうかを確認するには、Math.floor()またはを使用できますMath.ceil()

于 2012-09-24T03:53:54.530 に答える
1

これは機能します:

int no=0;
try
{
    no=Integer.parseInt(string);
    if(string.contains("."))
    {
        if(string.contains("f"))
        {
            System.out.println("float");
        }
        else
            System.out.println("double");
    }
}

catch(Exception ex)
{
    Console.WriteLine("not numeric or string");
}
于 2012-09-24T02:58:03.573 に答える