有几种方法可以决定某个值是否为整数。 我所知道的所有方法都使用除法运算。
哪种方法最快,并且: 有没有一种方法可以在不进行浮点运算的情况下执行此操作?
编辑:为了澄清,我的程序只处理整数和双精度值。以下是我的一些代码:
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");
}
}
}
答案 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");
}