| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 941 人关注过本帖
标题:long i <= Math.sqrt(data)不同数据类型的比较为什么没有警告?
只看楼主 加入收藏
家乡的雨
Rank: 2
等 级:论坛游民
帖 子:25
专家分:44
注 册:2009-1-12
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:3 
long i <= Math.sqrt(data)不同数据类型的比较为什么没有警告?
public static void main(String[] args)
    {
        boolean flag = true;
        System.out.print("Please input the number:");
        Scanner input = new Scanner(System.in);
        long data = input.nextLong();
        
        System.out.println("The square root of "+data+" is "+Math.sqrt(data));
        
        // 这儿有点不明白,i <= Math.sqrt(data)不同数据类型的比较为什么没有警告
        for(long i = 2; i <= Math.sqrt(data); i ++)

        {
            if(data%i == 0)
            {
                flag = false;
                break;
            }
        }
        
        if(flag)
            System.out.println(data+" is a prime.");
        else
            System.out.println(data+" is not a prime.");
    }
搜索更多相关主题的帖子: long 
2009-07-21 14:10
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:3 
感觉就是一个类型!不知道我看懂了么?
1: long data = input.nextLong();
2:for(long i = 2; i <= Math.sqrt(data); i ++)
都是long型 的。
如我没看懂和话,请别怪我。

C#超级群 74862681,欢迎大家的到来!
2009-07-21 14:23
家乡的雨
Rank: 2
等 级:论坛游民
帖 子:25
专家分:44
注 册:2009-1-12
收藏
得分:0 
我查JSE API 文档,上面说Math.sqrt()的返回值是double类型的。

public static double sqrt(double a)返回正确舍入的 double 值的正平方根。特殊情况是:
    如果参数是 NaN 或小于零,那么结果是 NaN。
    如果参数是正无穷大,那么结果就是正无穷大。
    如果参数是正零或负零,那么结果与参数相同。
否则,结果是最接近该参数值的真实数学平方根的 double 值。
2009-07-21 14:32
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
我觉得<=符号会自动转型,将两个不同类型的数转型后再进行比较
就像=赋值一样,也有自动转型

编程之路无止境!
可是小子才入门!
2009-07-21 22:33
快速回复:long i <= Math.sqrt(data)不同数据类型的比较为什么没有警告?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021003 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved