黑马程序员技术交流社区
标题:
关于判断一个数是不是整数
[打印本页]
作者:
张頔
时间:
2012-6-12 17:00
标题:
关于判断一个数是不是整数
当时是这样一个题目
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
我的代码如下:
public class sqrtDemo {
public static void main(String[] args){
for(int i=0;i<100000;i++){
double a = Math.sqrt(i+100); //Math.sqrt()返回的是double类型的比如12.0
double b = Math.sqrt(i+100+168);
if(isInt(a)&&isInt(b)){
System.out.println(i);
break;
}
}
}
public static boolean isInt(double d){ //判断是不是整数,例如是为了区分12.0和12.1
int i = (int)d; //我始终感觉这地方有点取巧 有什么好方法没
if(i==d){
return true;
}else return false;
}
}
作者:
吴小东
时间:
2012-6-12 17:24
用这个方法吧 Boolean isInt = Class.forName("java.lang.Integer").isInstance(传入你需要判断的值);
如果要判断是否是其他类型,就将Integer 改成其他的类型就OK了。
如:
int num = 1;
Boolean is = Class.forName("java.lang.Integer").isInstance(num);
//Boolean is = Class.forName("java.lang.String").isInstance(num);
作者:
戴敏智
时间:
2012-6-12 17:33
本帖最后由 戴敏智 于 2012-6-12 17:35 编辑
通过Math类中的floor方法获取返回相应的double值,该值是小于或等于d的最大整数: double i=Math.floor(d);
作者:
李海晓
时间:
2012-6-12 17:41
if((a-(int)a)==0){
System.out.println(“整形”);
} 我刚想的,还没测试
作者:
郑冬
时间:
2012-6-12 18:17
try{
Integer.paseInt(num);
}catch(NumberFormatException e){
e.printStack();
System.out.println("不是整数!");
}
作者:
张頔
时间:
2012-6-12 20:25
郑冬 发表于 2012-6-12 18:17
try{
Integer.paseInt(num);
}catch(NumberFormatException e){
我也想到过用try catch
但是:如果num=12.0
try{
Integer.parseInt("12.0");
}catch(NumberFormatException e){
System.out.println("不是整数!");
}
这时判断12.0不是整数啊
题目需要的是判断12.0是整数
作者:
熊雪莲
时间:
2012-6-12 22:32
我是个零基础的,目前还在努力自学中,才学到多线程,希望能成为黑马,
楼主的代码我不是全部都能看懂,但是对于判断一个数是否是整数,我想到一个思路,楼主可以试试
就是用if(i%1==0){}这样来控制,也就是说用你需要判断的那个数对1取模,如果你判断的这个数是整数取模后就是0,就会执行if 后面的语句,也就是可以判断这个数是否整数~
我是大菜鸟,不知道这样行不行的通,你们觉得这样可以么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2