黑马程序员技术交流社区

标题: 关于判断一个数是不是整数 [打印本页]

作者: 张頔    时间: 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