0

数学运算符无法正常工作时遇到问题。

var posfx = (dwidth - outwd) / 2 + (outwd - twd) + pdir + 1.5 * 14
                 //  =        58                    -         21

pdir 是一个运算符( + 或 - )在这种情况下它是负数。&我尝试使用“+ pdir +”

它给了我一个字符串:“58-21”,而不是一个数字(37)。我如何得到它来计算一个数字?

4

4 回答 4

3

如果需要减去,则将等式的后半部分乘以 -1。

于 2013-05-29T17:19:02.783 回答
3

如果pdir是一个字符串,将其添加到数字将形成一个字符串:

> 2 + '-' + 3
'2-3'

您可以乘以1-1取而代之,具体取决于 的值pdir

... + (pdir == '+' ? 1 : -1) * 1.5 ...
于 2013-05-29T17:19:36.600 回答
2

var posfx = (dwidth - outwd) / 2 + (outwd - twd) + (pdir == '-' ? -1 : 1) * 1.5 * 14

于 2013-05-29T17:19:04.173 回答
2

便宜的方法是eval()绕过它,但你可以做得更好。

尝试替换pdir +(pdir == "-" ? -1 : 1) *

-1如果运算是减法,这将乘以以下项。

于 2013-05-29T17:19:13.253 回答