首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查Java 8中的负零值?

如何检查Java 8中的负零值?
EN

Stack Overflow用户
提问于 2016-10-08 14:52:22
回答 1查看 2.6K关注 0票数 8

我一直在试图找出如何确定双值是否为-0.0d。我搜索了一下这个问题,找到了一些不同的方法,但是我找到的所有线程都至少有几年的历史了,并且似乎不再工作了。

到目前为止,我尝试过的是:

代码语言:javascript
复制
double x, y;
x = 0;
y = -0;

println(x == y);
println(Double.compare(x, y) == 0);
println(new Double(x).equals(new Double(y)));
println(Double.doubleToLongBits(x) == Double.doubleToLongBits(y));
println(Math.signum(x) == Math.signum(y));

不幸的是,所有这些打印的true

如果您想知道,我需要区分0和-0,原因是我试图从用户输入中解析一个双值,并在出现异常时使用-0作为哨位值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-08 14:59:23

您的问题是您使用的是y = -0而不是y = -0.00是一个整数字,没有-0 int值,它只保留0,然后加宽 to +0.0d.You也可以在否定之前使用-(double)0进行扩展,得到与-0.0相同的结果。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39933792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档