Java如果数字为-0

时间:2018-10-16 11:33:14

标签: java trigonometry

如果有此代码:

double sin = Math.sin(angle*rad);
double cos = Math.cos(angle*rad);
double tan = Math.tan(angle*rad);

它返回指定角度的三角函数。但是,对于90度的角度,将返回-0.00000。因此,当这些值打印出来时,-0看起来很奇怪。在if语句中如何测试-0?

我尝试使用以下代码:

if (tan==0) { s.o.p(tan); }

它没有运行。

2 个答案:

答案 0 :(得分:1)

在将变量与零进行比较时,只需取变量的绝对值即可。您可能需要覆盖一个范围,因为它不一定总是精确地为0.0。

Info.plist

if (Math.abs(tan) <= threshold) { ... } 设置为足够小的值以覆盖您认为足够接近0的位置。

编辑比较中添加了阈值/ε值-谢谢Ben

答案 1 :(得分:0)

您可以通过将1除以您的值来检查负零。这将产生Double.POSITIVE_INFINITY代表正零,Double.NEGATIVE_INFINITY代表负零:

if (1.0 / value == Double.NEGATIVE_INFINITY) {
    // Value was a negative zero
}