如何在博森处理NaN?

tim*_*urb 5 bosun

我有2个指标,并试图找到它们之间的平均值的差异,100*(m1+m2)/m1但是这显然会产生NaNif m1变为零.

如果我不想在指标变为零时发出警报,我应该如何处理这种情况?

Kyl*_*ndt 4

对于布尔值,水手长有类似短路的行为。由于Bosun的表达式语言缺少if语句,因此需要先使用bool运算来查看除数是否为0:

$foo = 0
$foo && 1/$foo
Run Code Online (Sandbox Code Playgroud)

由于 $foo 为零,因此该语句“不正确”,因此 1/$foo 不会计入最终计算中:

在此输入图像描述

  • 如果您使用这种方法,那么当 $foo 不为 0 时,您会丢失 1/$foo 值: $foo = 5 $foo && 1/$foo 结果:1(即 true)如果您想要 1/$foo 该怎么办$foo != 0 但如果 $foo == 0 则为 0? (3认同)