2016-04-01 4 views
3

私はthis answer on how to convert a negative number to positiveを見ましたが、少し違う状況があります。私はApache Cordovaでコーディングをしています。JavaScriptで値を負から正または正から負に変換しますか?

加速度計がX軸値-5を返すとき、私はそれを5に変換する必要があります。 X軸の値が5の場合、新しいX軸の値は-5になります。

私は-Math.abs()などの処理方法を理解していますが、このような状況を自分のコードにどうやって対応できますか?

答えて

3

あなたはこの文脈、Math.absが不要で簡単な計算を行うことができ、

x_value = x_value * -1; 

それとも、のような価値を否定することができ、

x_value = -(x_value); 

否定している間に、を得る機会があります、しかし、我々はそれを心配する必要はありませんので、以来-0 == 0Abstract equality comparison algorithmは、ステップ1で指示しています。ステップ1 - c - viです。

+0

'x_value = - (x_value);'本当に素晴らしいです。そして私は[自己回答の質問](http://stackoverflow.com/a/36364587/117259)を投稿しようとしていましたが、今では私の数学のスキルがそれほど暑くないことを学んだし、これにアプローチする他の方法がたくさんあります。ありがとう! – JakeGould

+1

@JakeGould喜んで助けて! :) –

0

まあ、私の解決策はx_valueが0かどうかよりも大きいかどうかを確認し、それに応じて行動するために、このような三元を作成することです:

x_value = x_value > 0 ? -Math.abs(x_value) : Math.abs(x_value); 
3

あなたは、その取得する-1により、任意の数を掛けることができますopposite

例:

5 * -1 = -5 
-5 * -1 = 5 
2

なぜMath.absが必要ですか?

x_value = -1 * x_value; 

私が想像できるすべてのシナリオで動作します。

2

-1とすることをお勧めします。

乗算代入演算子は、変数に右オペランドの値を乗算し、その結果を変数に代入します。詳細は、multiplication operatorを参照してください。

value *= -1; 
+1

編集が役に立ちます。 –

関連する問題