0

数学演算子が機能しないという問題があります。

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

pdir は演算子 ( + または - のいずれか) です。この場合は負です。& 「+pdir+」を使ってみた

数字(37)ではなく、「58-21」の文字列が表示されます。数値を計算するにはどうすればよいですか?

4

4 に答える 4

3

減算する必要がある場合は、式の後半に -1 を掛けます。

于 2013-05-29T17:19:02.783 に答える
3

が文字列の場合pdir、それを数値に追加すると文字列が形成されます。

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

の値に応じて、1または代わりに乗算できます。-1pdir

... + (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 に答える