| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:菜鸟问个关于自动类型转换的问题
只看楼主 加入收藏
可乐酷酷
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2010-1-17
结帖率:0
收藏
 问题点数:0 回复次数:5 
菜鸟问个关于自动类型转换的问题
刚开始学习java,学到自动类型转换.
class OperatDemo01
{
    public static void main(String[] args)
    {
        byte b1 = 3,b2 = 4,b;
        b = b1+b2;
        System.out.println(b);
    }
}
编译后出现  错误: 可能损失精度
这个代码报错,不明白为什么会这样.
希望有人能详细的说下,谢谢
搜索更多相关主题的帖子: public java 
2013-10-24 14:44
sd4425277
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-10-24
收藏
得分:0 
不是损失精度把,你b2= 4,b;是什么啊 一个变量值不是这样的把
2013-10-24 14:59
lireach
Rank: 2
等 级:论坛游民
帖 子:4
专家分:25
注 册:2013-10-23
收藏
得分:0 
回复 楼主 可乐酷酷
  编译器在编译时(byte类型取值是有限的)他在判断右边的数值的时候发现是int类型(是“常量”), 但他会判断是不是在byte字节范围之内,如果在的话,会给右边的int类型做默认的强转,他把最后的一个字节(byte八个二进制)赋值到了b这个变量当中  *//*  b1和b2是“变量”意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内, 他检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断了
收到的鲜花
2013-10-24 16:57
可乐酷酷
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2010-1-17
收藏
得分:0 
回复 3楼 lireach
谢谢啦~~~~
2013-10-24 17:05
qqliuming8
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-10-25
收藏
得分:0 
围观。。。。。。。。。。。。。。。。。。。。。。。。。。
2013-10-25 13:02
格式化秘密
Rank: 2
等 级:论坛游民
帖 子:31
专家分:57
注 册:2013-8-13
收藏
得分:0 
三楼正解。。。
2013-10-27 17:21
快速回复:菜鸟问个关于自动类型转换的问题
数据加载中...
 
   



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

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