概述
昨晚在牛客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的数据检验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复