A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林康春 黑马帝   /  2012-6-26 23:29  /  1801 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 林康春 于 2012-6-27 21:33 编辑

class  jiShu
{
        public static void main(String[] args)
        {   
                int a=1;
                int b=3;
                double c=a/b;
                System.out.println(c);//结果是0.0

        }
}
//为什么不是0.3333333333333333?

9 个回复

倒序浏览
本帖最后由 韦念欣 于 2012-6-26 23:47 编辑

因为a和b是整形,1/3得到的整数就是0
0被double接收后,输出就是0.0

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
int 型 变量   + - * /  int 型变量 其结果为int型变量     
回复 使用道具 举报
应为a和b都是int型数据
c = a/b开始也是int型的,值是0
然后声明为double型,然后就转换成了double型的了,也就是0.0
回复 使用道具 举报
public class fdsdfs {
        public static void main(String[] args)
    {   
            int a=6;
            int b=5;
            double c=a/b;
            System.out.println(c);//结果是1.0


public class fdsdfs {
        public static void main(String[] args)
    {   
            int a=6;
            int b=5;
          int c=a/b;
            System.out.println(c);//结果是1

    }
//int类型  /  int类型  结果强制转换double类型


}


    }


}
回复 使用道具 举报
class  jiShu
{
        public static void main(String[] args)
        {   
                int a=1;
                int b=3;
                double c=a/b;  //会先计算a/b得到一个整型的结果,
                                     //然后再赋值给c,c是double类型,所以是0.0

                System.out.println(c);//结果是0.0

        }
}
回复 使用道具 举报
class  jiShu
{
        public static void main(String[] args)
        {   
                int a=1;   //a为整形常量
                int b=3;   //b为整形常量
                double c=a/b;   //a/b运算是整形除以整形,结果还是整形。即a/b=0。然后把0赋值给double型的c。
                                      //若要结果输出0.3333333333333333需要把a,b进行强制类型转换后才能进行预算。
                System.out.println(c);
        }
}
回复 使用道具 举报
吴扬 中级黑马 2012-6-27 00:53:04
8#
因为a和b都是整型数据啊,a/b由于是取整,即1/3之后取整是0,然后int类型的0又被赋给双精度double的b,数据类型会自动向上提升,所以输出结果是0.0
回复 使用道具 举报
林康春 黑马帝 2012-6-27 21:33:23
9#
韦念欣 发表于 2012-6-26 23:30
因为a和b是整形,1/3得到的整数就是0
0被double接收后,输出就是0.0

右边的输出都是整形的 左边为double型吗
我刚回来,第一时间回你了
回复 使用道具 举报
林康春 发表于 2012-6-27 21:33
右边的输出都是整形的 左边为double型吗
我刚回来,第一时间回你了

double c=a/b;
这个代码中,c虽然是double的,但是a/b的结果是int的,a/b的结果是0,即1/3的结果取整后为0。
0赋值给c,那么c也就等于0,又因为c是double的,所以JAVA输出的时候就带上小数点,所以结果为0.0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马