如果有此代码:
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); }
它没有运行。
答案 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
}