黑马程序员技术交流社区

标题: 表达式 3-2.6==0.4的值是什么? [打印本页]

作者: prospect    时间: 2012-7-22 12:36
标题: 表达式 3-2.6==0.4的值是什么?
表达式 3-2.6==0.4的值是什么?
作者: 段应腾    时间: 2012-7-22 12:57
结果为false 首先明确这是一个判断语句 输出结果为boolean 左边3-2.6 由于两者数据类型不一样 运算结果会做转化 而结果的精度不确定 所以左右不相等 结果为false
作者: 孙建飞    时间: 2012-7-22 13:37
结果为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


作者: 朱烈葵    时间: 2012-7-22 13:43
?? 不懂
作者: 李菁    时间: 2012-7-22 14:47
3-2.6==0.4的结果是false。因为3和2.6的类型不一样,运算后涉及到精度的问题,3-2.6结果为0.3999999999999999
所以结果是false
作者: 王贵朝    时间: 2012-7-22 16:10
从左到右算起,先算的是3-2.6因为3是int型2.6系统默认为double型所以运算结果会做一下转化不同类型比较结果是类型大的。接着又和0.4做相等性运算结果为false(==运算的结果为布尔值)
作者: 常佳杰    时间: 2012-7-22 16:22
这个是二进制存储浮点数的原因所造成的
你可以输出3-2.6结果是3.9999999
3-2.6得到的是浮点数 ,这种运算通常伴随着因为无法精确表示而进行的近似或舍入
所以不等为假





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2