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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

楼主晚上自己写了个代码如下:
class Demo
{
        public static void main(String[] args)
        {
        byte a=3;
        byte a1=4;
        byte a2=5;
        a=(byte)(a1+a2);
        //a=a1+a2;
        int c=a1+a2;
        int d1=5;
        int d2=6;
        int d=d1+d2;
        System.out.println(d);

        }

}为何到后面的运行结果上 int类型的不会在dos中出现错误,而byte类型的中的:
byte a=3;                                                                                                                    跟byte a=3;
byte a1=4;                                                                                                                      a=(byte)(a+7);有什么去区别吗
byte a2=5;
a=a1+a2;运行后出现什么精度丢失?为啥我改为a=(byte)(a1+a2);就不会算错?

里面的思想我实在是模糊了,我小白一个,搞不明白了,有没有懂的人说下道理啊 ,我郁闷了很久。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马