double和float

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:03:16
Float g = new Float(4.2F);
Double d = new Double(4.2);
那么d.equals(f)和g.equals(4.2)都是false?谢谢!
不好意思,前面还有个float f = 4.2F

d.equals(f) equals是比较两个对象的内容是否相同,f没有被赋任何值,此处会出现异常。

g.equals(4.2) 数字4.2默认是double的,而g是float,两个隶属不同classes 的对象绝不会相等,所以是false。如果g.equals((float)4.2))或者d.equals(4.2)就都是true。

补充: 如果float f = 4.2F,f是float,而d是double,两个隶属不同classes 的对象绝不会相等,所以是d.equals(f)也是false