我是靠谱客的博主 端庄大白,这篇文章主要介绍对double类型中存在-0.0的数据检验,现在分享给大家,希望可以做个参考。

昨晚在牛客APP上做JAVA题库,见到一题目很有新意,便对该问题和答案做了检验。

原题是这样的:

下列代码执行的结果应该是什么?

public class ZeroTest {
public static void main(String[] args) {
double x = -0.5d;
System.out.println(Math.floor(x));
System.out.println(Math.ceil(x));
x = Math.ceil(x);
System.out.println(x==0.0);
}
}



在MyEclipse运行下的正确答案是

-1.0
-0.0
true

头一次见到原来还能出现-0.0这样的数据,并且-0.0与0.0是完全一样的数据,只是形式上不同,于是我又做了延伸的探索。

double x = -0.5d;
System.out.println((int)x);
System.out.println((char)x);
System.out.println((float)x);
System.out.println((long)x);

System.out.println(Math.ceil((float)x));

0


-0.5

0

-0.0

发现-0.0只存在于单双精度型,而不存在于整型或字符型(字符型甚至无法显示),这种题对于实际应用并无影响,只是在企业招聘笔试上会出现类似的陷阱来考察,望各位能吸取教训。


最后

以上就是端庄大白最近收集整理的关于对double类型中存在-0.0的数据检验的全部内容,更多相关对double类型中存在-0.0内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(107)

评论列表共有 0 条评论

立即
投稿
返回
顶部