我正在使用软件(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条件,然后将表达式的其他部分相乘。
c /(c + 5e-324)应该有效。 (常数5e-324是Number.MIN_VALUE,最小的可表示正数。)如果x为0,则恰好为0,如果x为非零(技术上,如果x至少为4.45014771701440252e-308,则其中最小的非,问题中允许的零值,0.01,是),JavaScript的浮点数学不精确,答案不同于1,因此它将完全为1。