Ruby: Negative Zahl in positive Zahl ändern?

105

Was ist der einfachste Weg, eine negative Zahl mit Rubin in eine positive zu ändern?

dh. Ändern Sie "-300" in "300"

Shpigford
quelle

Antworten:

267

Mit abswird der absolute Wert einer Zahl zurückgegeben

-300.abs  # 300
300.abs   # 300
Yacoby
quelle
3
Meine Antwort ist nur für negative Zahlen. Wenn Sie immer den absoluten Wert haben müssen, ist dies definitiv der bessere Weg.
Brandon Bodnar
27

Stellen Sie ein negatives Vorzeichen davor.

>> --300
=> 300
>> x = -300
=> -300
>> -x
=> 300
Brandon Bodnar
quelle
6
Beachten Sie nur, dass die Zahl, wenn sie bereits positiv ist, negativ wird.
Sasha Chedygov
Ja. Klargestellt, dass in meinem Kommentar zu der oben akzeptierten Antwort.
Brandon Bodnar
8
Es ist entweder kein Genie oder kein Wahnsinn.
Stephen Nguyen
warum negative Stimmen? Dies wird negativ, wenn OP gefragt wird. #absund -sind verschiedene Funktionen mit demselben Verhalten für die angeforderte Eingabe / Ausgabe. Wenn dies auf ein unerwünschtes +-> zurückzuführen ist -, ist dies nur eine Annahme, da dies nicht von OP abgedeckt wurde.
Andre Figueiredo
14

Wäre es nicht einfacher, es mit einem negativen zu multiplizieren?

x * -1

Auf diese Weise können Sie hin und her gehen.

Absynthe Minded Web Smith
quelle
Ich mag es, dies aus Gründen der Klarheit zu verwenden, da die Verwendung des Zeichens manchmal leicht zu übersehen ist
Matthias
1
Denken Sie daran, dass Sie die Kurzschrift verwenden können, x *= -1wenn Sie den neuen Wert speichern
möchten
Basierend auf dem gleichen Prinzip können wir sogar jede negative Zahl durch -1 teilen. Ich habe mich jedoch nur gefragt, was der Vorteil der Verwendung gegenüber der abs-Methode sein kann, wie von Yacoby
Apurva Mayank am
1
abs gibt einen absoluten Wert zurück. Wenn das alles ist, was Sie wollen, wie es das OP tut, ist es in Ordnung. Aber was ist, wenn Sie hin und her gehen müssen?
Absynthe Minded Web Smith
@ApurvaMayank Was ist der Vorteil absdavon? OP hat es nicht erwähnt, aber er könnte entweder positiv zu negativ werden oder es positiv halten. Sie können keines annehmen, ohne dass dies erwähnt wird.
Andre Figueiredo