检查值是否为整数的最佳方法是什么?

时间:2015-02-12 13:41:25

标签: java

有几种方法可以决定某个值是否为整数。 我所知道的所有方法都使用除法运算。

哪种方法最快,并且: 有没有一种方法可以在不进行浮点运算的情况下执行此操作?

编辑:为了澄清,我的程序只处理整数和双精度值。以下是我的一些代码:

 for (int i = 6;; i++) {

        for (int j = i - 1; j > 0; j--) {
            double number1 = i;
            double number2 = j;
            double d = number1 / number2;
            int help = (int)d;
            if( (d - help) == 0.0){
                System.out.println("Whole number found");
            }
        }
}

2 个答案:

答案 0 :(得分:4)

请注意,由于积分除法规则,int / int也将是int。如果要保留余数,则需要将其中一个提升为浮点数或使用惯用语1.0 * a / b

如果您有一个浮点数f,那么

java.lang.Math.floor(f) - f == 0可能是最好的方式。

它避免了可能溢出的int的中间演员。

答案 1 :(得分:1)

这会做你想要的!

    String str = "1";
    try {
        Integer.parseInt(str);
    } catch (NumberFormatException e) {
        System.err.println("Not a number");
    }