我是靠谱客的博主 端庄大白,最近开发中收集的这篇文章主要介绍对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的数据检验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部