javascript中数学运算符*,/,+, - ,^可用于将非零数字转换为1吗?

我正在使用软件(Oracle Siebel),它只支持JavaScript表达式,运算符乘法,除法,减法,加法和XOR(*,/, - ,+,^)。 我没有其它的操作如 ! 和 ?: 可用。 使用上面的运算符,如果数字非零,是否可以将数字转换为1,如果数字已经为零,则将其保留为0? 数字可以是正数,零或负数。

例如:

var c = 55;

var d;  // d needs to set as 1

我尝试了c / c,但当c为0时,它评估为NaN。当c为0时,d需要为0。 c是货币值,最多有两个小数和12个整数。 我试图通过将数字转换为布尔值0或1来模拟if条件,然后将表达式的其他部分相乘。


 
javascript
siebel
1s

推荐解答

c /(c + 5e-324)应该有效。 (常数5e-324是Number.MIN_VALUE,最小的可表示正数。)如果x为0,则恰好为0,如果x为非零(技术上,如果x至少为4.45014771701440252e-308,则其中最小的非,问题中允许的零值,0.01,是),JavaScript的浮点数学不精确,答案不同于1,因此它将完全为1。

  nopapp推荐