Проверка, является ли число Integer в Java

Есть ли какой-либо метод или быстрый способ проверить, является ли число Integer (принадлежит Z-полю) в Java?

Я думал, что, возможно, вычитал бы его из округленного числа, но я не нашел никакого метода, который поможет мне в этом.

Где я должен проверить? Integer Api?

Ответы

Ответ 1

Быстрая и грязная...

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

edit: Предполагается, что x уже находится в некоторой другой числовой форме. Если вы имеете дело со строками, загляните в Integer.parseInt.

Ответ 2

Еще один пример:)

double a = 1.00

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

В этом примере можно использовать ceil и иметь тот же эффект.

Ответ 3

Если вы говорите о значениях с плавающей запятой, вы должны быть очень осторожны из-за характера формата.

лучший способ, которым я это знаю, - это решить какое-то значение epsilon, скажем, 0,000001f, а затем сделать что-то вроде этого:

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

затем

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

По существу, вы проверяете, имеет ли z и целочисленный случай z то же значение в пределах некоторого допуска. Это необходимо, потому что плавающие по своей сути являются неточными.

ПРИМЕЧАНИЕ. ОДНАКО: это, вероятно, сломается, если ваши поплавки имеют величину больше, чем Integer.MAX_VALUE (2147483647), и вы должны знать, что по необходимости невозможно проверить интегральность на поплавках выше этого значения.

Ответ 4

С Z Предполагаю, что вы имеете в виду целые числа, т.е. 3, -5,77, не 3,14, 4,02 и т.д.

Регулярное выражение может помочь:

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

Ответ 5

измените 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);


   }

Ответ 6

    if((number%1)!=0)
    {
        System.out.println("not a integer");
    }
    else
    {
        System.out.println("integer");
    }

Ответ 7

 int x = 3;

 if(ceil(x) == x) {

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

 } else {

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

 }

Ответ 8

//на языке С... но algo такой же

#include <stdio.h>

int main(){
  float x = 77.6;

  if(x-(int) x>0)
    printf("True! it is float.");
  else
    printf("False! not float.");        

  return 0;
}