web-dev-qa-db-ja.com

Javaで数値が整数かどうかを確認する

Javaで数値が整数(Zフィールドに属する)であるかどうかを確認する方法または簡単な方法はありますか?

丸められた数値からそれを減算することを考えましたが、これに役立つ方法は見つかりませんでした。

どこで確認すればいいですか?整数Api?

22
Unknown user

早くて汚い...

if (x == (int)x)
{
   ...
}

編集:これは、xがすでに他の数値形式になっていることを前提としています。文字列を扱っている場合は、Integer.parseInt

42
Bleaourgh

もう1つの例:)

double a = 1.00

if(floor(a) == a) {
   // a is an integer
} else {
   //a is not an integer.
}

この例では、ceilを使用でき、まったく同じ効果があります。

10
evilone

浮動小数点値について話している場合、形式の性質上、非常に注意する必要があります。

私がこれを行うのを知っている最善の方法は、イプシロン値、たとえば0.000001fを決定し、次のようなことをすることです:

boolean nearZero(float f)
{
    return ((-episilon < f) && (f <epsilon)); 
}

それから

if(nearZero(z-(int)z))
{ 
    //do stuff
}

基本的に、zとzの整数のケースが許容範囲内で同じ大きさであるかどうかを確認しています。浮動は本質的に不正確であるため、これが必要です。

ただし、フロートの大きさがInteger.MAX_VALUE(2147483647)よりも大きい場合、これはおそらく壊れます。その値を超えるフロートの積分をチェックすることは必然的に不可能であることに注意する必要があります。

Zでは、整数、つまり3.14、4.02などではなく3-5、77を意味すると仮定します.

正規表現が役立つ場合があります:

Pattern isInteger = Pattern.compile("\\d+");
1
sthysel

Ceil関数とfloor関数が同じ値を返すかどうかを確認してください

static boolean isInteger(int n) 
{ 
return (int)(Math.ceil(n)) == (int)(Math.floor(n)); 
} 
0
Shubham Chopra

xを1に変更し、出力は整数です。それ以外の場合、整数ではなく整数、小数などをカウントするために加算されます。

   double x = 1.1;
   int count = 0;
   if (x == (int)x)
    {
       System.out.println("X is an integer: " + x);
       count++; 
       System.out.println("This has been added to the count " + count);
    }else
   {
       System.out.println("X is not an integer: " + x);
       System.out.println("This has not been added to the count " + count);


   }
0
user3080471
 int x = 3;

 if(ceil(x) == x) {

  System.out.println("x is an integer");

 } else {

  System.out.println("x is not an integer");

 }
0
Jyant Mahara
    if((number%1)!=0)
    {
        System.out.println("not a integer");
    }
    else
    {
        System.out.println("integer");
    }
0
Learner
/**
 * Check if the passed argument is an integer value.
 *
 * @param number double
 * @return true if the passed argument is an integer value.
 */
boolean isInteger(double number) {
    return number % 1 == 0;// if the modulus(remainder of the division) of the argument(number) with 1 is 0 then return true otherwise false.
}
0
Dhananjay M