代码之家  ›  专栏  ›  技术社区  ›  crazicrafter1

如果一个数字是-0

  •  0
  • crazicrafter1  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  1
  •   Johan    6 年前

    if (Math.abs(tan) <= threshold) { ... }
    

    你的位置 threshold 一个足够小的值来覆盖您所考虑的内容,就接近于0。

    在比较中增加了阈值/ε值-谢谢 Ben

        2
  •  0
  •   Erwin Bolwidt    6 年前

    Double.POSITIVE_INFINITY Double.NEGATIVE_INFINITY

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