2016-05-25 11 views
0

Sehr einfache Aufgabe. Ich kann Nummer mit + oder - bekommen. Aber muss nur positive Variante drucken.Nummer von negativ zu positiv ändern.

es wie folgt gelöst:

val absoluteDiff = primary.sum - secondary.sum 
println(if (absoluteDiff < 0) absoluteDiff * -1 else absoluteDiff) 

Wie kann es am einfachsten?

Danke.

+1

Ich bin nicht vertraut mit Scala, aber Sie könnten Math.abs (absoluteDiff) verwenden. –

+3

'math.abs (a - b);' – mishadoff

+0

Dies ist nicht einmal eine Scala Frage, sondern eine Frage der rudimentären 4. Klasse Arithmetik:/ –

Antwort

4

Berechnen des Absolutwerts Math.abs Verwendung:

val absoluteDiff = Math.abs(primary.sum - secondary.sum) 

Beschreibung:

Der java.lang.Math.abs(int a) gibt den Absolutwert eines int value. Wenn das Argument nicht negativ ist, wird das Argument zurückgegeben. Wenn das Argument negativ ist, wird die Negation des Arguments zurückgegeben.

Quelle: Math.abs (int) JavaDocs: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-int-

+0

Math Objekt ist in Scala –

+4

deplacated verwenden dann 'scala.math'. http://www.scala-lang.org/api/current/index.html#[email protected](x:Float):Float –

+1

Es ist erwähnenswert, dass beide 'math.abs (Int.MinValue)' und das Java-Äquivalent ist negativ. Dies garantiert nicht, dass Sie einen nicht negativen Wert erhalten. –

-5

Eine einfachere Art und Weise könnte sein, den Unterschied zu quadrieren und die Quadratwurzel des Ergebnisses zu nehmen.

z.B .: -2 wird 4 und dann 2.

Ich denke, die Math.abs() tut ganz ähnlich.

+1

Das sollte einfacher sein? Ich glaube nicht ... –

+0

Warum um alles in der Welt würden Sie das tun? Es ist langsam,/teuer und anfällig für Rundungs ​​/ Überlauf-Probleme für große Werte. Ich bin mir ziemlich sicher, dass "abs" das Äquivalent von "if (x <0) -x sonst x" macht. –

+0

Nun, ich zeige nur mehr Optionen. Keine Frage, es ist teuer. Übrigens - weißt du wie abs() funktioniert? – Daddelbob

Verwandte Themen