检查数字是否是Java中的整数

时间:2011-03-31 15:43:59

标签: java utilities

是否有任何方法或快速方法可以检查Java中的数字是否为整数(属于Z字段)?

我想过可能会从四舍五入的数字中减去它,但我找不到任何可以帮助我的方法。

我应该在哪里检查?整数Api?

12 个答案:

答案 0 :(得分:42)

又快又脏......

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

编辑:这是假设x已经是其他数字形式。如果您正在处理字符串,请查看Integer.parseInt

答案 1 :(得分:10)

更多一个例子:)

double a = 1.00

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

在这个例子中,ceil可以使用并具有完全相同的效果。

答案 2 :(得分: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),这可能会破坏,你应该意识到,必须不可能在高于该值的浮点数上检查整数。

答案 3 :(得分:1)

使用Z我假设你的意思是整数,即3,-5,77而不是3.14,4.02等。

正则表达式可能会有所帮助:

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

答案 4 :(得分:0)

将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);


   }

答案 5 :(得分:0)

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

答案 6 :(得分:0)

 int x = 3;

 if(ceil(x) == x) {

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

 } else {

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

 }

答案 7 :(得分:0)

http://module

答案 8 :(得分:0)

检查ceil函数和floor函数是否返回相同的值

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

答案 9 :(得分:0)

    double x == 2.15;

    if(Math.floor(x) == x){
        System.out.println("an integer");
    } else{
        System.out.println("not an integer");
    }

我认为您可以类似地使用Math.ceil()方法来验证x是否为整数。之所以有效,是因为Math.ceilMath.floorx舍入到最接近的整数(例如y),如果x==y则我们原来的“ x”是整数。

答案 10 :(得分:0)

你可以只使用 x % 1 == 0 因为 x % 1 给出了 x / 1 的残值

答案 11 :(得分:-3)

//用C语言编写..但算法是相同的

#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;
}