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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© prospect 初级黑马   /  2012-7-22 12:36  /  2313 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

表达式 3-2.6==0.4的值是什么?

6 个回复

倒序浏览
结果为false 首先明确这是一个判断语句 输出结果为boolean 左边3-2.6 由于两者数据类型不一样 运算结果会做转化 而结果的精度不确定 所以左右不相等 结果为false

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
结果为false
==是关系操作符,会生成一个boolean的结果,如果操作数的值相等就返回true,如果不想相等就返回false
==也可以用于比较对象的等价性(比较两个对象是否相同)
public class Test{
     public static void main(String[] args){e
          Integerr n1 = new Integer(15);
          Integerr n2 = new Integer(15);
          Systeme.out.println(n1==n2);
}
}
结果打印false   
当比较对象的内容是否相同时就使用equals()方法 如:
public class Test{
     public static void main(String[] args){e
          Integerr n1 = new Integer(15);
          Integerr n2 = new Integer(15);
          Systeme.out.println(n1.equals(n2));
}
}
结果打印true

回复 使用道具 举报
?? 不懂
回复 使用道具 举报
3-2.6==0.4的结果是false。因为3和2.6的类型不一样,运算后涉及到精度的问题,3-2.6结果为0.3999999999999999
所以结果是false

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
从左到右算起,先算的是3-2.6因为3是int型2.6系统默认为double型所以运算结果会做一下转化不同类型比较结果是类型大的。接着又和0.4做相等性运算结果为false(==运算的结果为布尔值)
回复 使用道具 举报
这个是二进制存储浮点数的原因所造成的
你可以输出3-2.6结果是3.9999999
3-2.6得到的是浮点数 ,这种运算通常伴随着因为无法精确表示而进行的近似或舍入
所以不等为假

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马