我看到了this answer on how to convert a negative number to positive,但情況稍有不同:我在Apache Cordova中做了一些編碼,並獲取了我需要翻轉的加速計數據。在JavaScript中將值從負值轉換爲正值還是負值轉換爲負值?
所以當加速度計返回一個X軸的值爲-5
我需要將它轉換爲5
以及相反;如果X軸值爲5
,則新的X軸值應爲-5
。
我明白如何做-Math.abs()
等,但我如何適應這樣的情況在我的代碼?
我看到了this answer on how to convert a negative number to positive,但情況稍有不同:我在Apache Cordova中做了一些編碼,並獲取了我需要翻轉的加速計數據。在JavaScript中將值從負值轉換爲正值還是負值轉換爲負值?
所以當加速度計返回一個X軸的值爲-5
我需要將它轉換爲5
以及相反;如果X軸值爲5
,則新的X軸值應爲-5
。
我明白如何做-Math.abs()
等,但我如何適應這樣的情況在我的代碼?
您可以在此背景下,沒有必要的Math.abs
做一個簡單的數學,
x_value = x_value * -1;
或者你也可以否定的價值一樣,
x_value = -(x_value);
雖然否定,有機會得到-0
,但我們不需要擔心,因爲-0 == 0
。 Abstract equality comparison algorithm在中如此說明步驟1-c-vi。
好,我的解決方案是創建一個這樣的三元,看看是否x_value
大於0或不採取相應的行動:
x_value = x_value > 0 ? -Math.abs(x_value) : Math.abs(x_value);
爲什麼你需要Math.abs?
x_value = -1 * x_value;
適用於我可以設想的每種情況。
我建議使用multiplication assignment和-1
。
乘法賦值運算符將變量乘以右操作數的值並將結果賦值給變量。有關更多詳細信息,請參閱multiplication operator。
value *= -1;
您的編輯幫助。 –
'X_VALUE = - (X_VALUE);'是真的輝煌。我打算髮佈一個[自我回答的問題](http://stackoverflow.com/a/36364587/117259),現在已經瞭解到我的數學技能並不那麼火爆,還有很多其他方法可以解決這個問題。謝謝! – JakeGould
@JakeGould很高興幫助! :) –