数学运算符无法正常工作时遇到问题。
var posfx = (dwidth - outwd) / 2 + (outwd - twd) + pdir + 1.5 * 14
// = 58 - 21
pdir 是一个运算符( + 或 - )在这种情况下它是负数。&我尝试使用“+ pdir +”
它给了我一个字符串:“58-21”,而不是一个数字(37)。我如何得到它来计算一个数字?
数学运算符无法正常工作时遇到问题。
var posfx = (dwidth - outwd) / 2 + (outwd - twd) + pdir + 1.5 * 14
// = 58 - 21
pdir 是一个运算符( + 或 - )在这种情况下它是负数。&我尝试使用“+ pdir +”
它给了我一个字符串:“58-21”,而不是一个数字(37)。我如何得到它来计算一个数字?
如果需要减去,则将等式的后半部分乘以 -1。
如果pdir
是一个字符串,将其添加到数字将形成一个字符串:
> 2 + '-' + 3
'2-3'
您可以乘以1
或-1
取而代之,具体取决于 的值pdir
:
... + (pdir == '+' ? 1 : -1) * 1.5 ...
var posfx = (dwidth - outwd) / 2 + (outwd - twd) + (pdir == '-' ? -1 : 1) * 1.5 * 14
便宜的方法是eval()
绕过它,但你可以做得更好。
尝试替换pdir +
为(pdir == "-" ? -1 : 1) *
-1
如果运算是减法,这将乘以以下项。