2016-04-01 11 views
3

Ich sah this answer on how to convert a negative number to positive, aber habe eine etwas andere Situation: Ich mache etwas Codierung in Apache Cordova und bekomme Beschleunigungsmesser Daten, die ich umdrehen muss.Konvertieren eines Werts von negativ nach positiv oder positiv in negativ in JavaScript?

Also, wenn der Beschleunigungsmesser einen X-Achsen-Wert von -5 zurückgibt, muss ich es in 5 konvertieren und das Gegenteil auch; Wenn der X-Achsenwert 5 ist, sollte der neue X-Achsenwert -5 lauten.

Ich verstehe, wie zu tun -Math.abs() und so, aber wie kann ich eine Situation wie diese in meinem Code aufnehmen?

Antwort

3

Sie können in diesem Zusammenhang eine einfache Mathematik tun, ohne die Notwendigkeit von Math.abs,

x_value = x_value * -1; 

Oder Sie können den Wert wie,

x_value = -(x_value); 
negieren

Während negieren, gibt es eine Chance,zu erhalten, Aber wir müssen uns nicht darum kümmern, seit -0 == 0. Abstract equality comparison algorithm sagt so in Schritt 1 - c - vi.

+0

'x_value = - (x_value);' ist wirklich brillant. Und ich hatte vor, eine [selbstbeantwortete Frage] (http://stackoverflow.com/a/36364587/117259) zu posten und habe jetzt gelernt, dass meine mathematischen Fähigkeiten nicht so heiß sind und es gibt Unmengen anderer Möglichkeiten, dies zu erreichen. Vielen Dank! – JakeGould

+1

@JakeGould Gut zu helfen! :) –

0

Nun, meine Lösung ist ein ternäres so sehen zu schaffen, wenn die x_value größer als 0 ist oder nicht und entsprechend handeln:

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

Sie eine beliebige Anzahl von -1 multiplizieren zu erhalten ihre opposite.

Beispiel:

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

Warum brauchen Sie Math.abs?

x_value = -1 * x_value; 

funktioniert für jedes Szenario, das ich mir vorstellen kann.

2

Ich empfehle die multiplication assignment mit -1 zu verwenden.

Der Multiplikationszuweisungsoperator multipliziert eine Variable mit dem Wert des rechten Operanden und weist das Ergebnis der Variablen zu. Weitere Informationen finden Sie unter multiplication operator.

value *= -1; 
+1

Ihre Bearbeitung hilft. –

Verwandte Themen