Ruby: zmienić liczbę ujemną na liczbę dodatnią?


105

Jaki jest najprostszy sposób zmiany liczby ujemnej na dodatnią za pomocą rubinu?

to znaczy. Zmień „-300” na „300”

Odpowiedzi:



27

Umieść przed nim znak minus.

>> --300
=> 300
>> x = -300
=> -300
>> -x
=> 300

6
Zwróć uwagę, że jeśli liczba jest już dodatnia, spowoduje to, że będzie ujemna.
Sasha Chedygov

Tak. Wyjaśniłem to w moim komentarzu do powyższej zaakceptowanej odpowiedzi.
Brandon Bodnar

8
albo nie jest geniuszem, albo nie jest szaleństwem.
Stephen Nguyen

dlaczego głosy negatywne? to zmienia się negatywne w pozytywne, zgodnie z zapytaniem OP. #absi -są różnymi funkcjami z tym samym zachowaniem dla żądanego wejścia / wyjścia. Jeśli to z powodu niepożądanego +-> -, to tylko przypuszczenie, ponieważ nie zostało to uwzględnione w OP.
Andre Figueiredo

15

Czy nie byłoby łatwiej pomnożyć to przez minus?

x * -1

W ten sposób możesz chodzić tam iz powrotem.


Lubię używać tego dla jasności, ponieważ użycie znaku - może być czasami łatwe do przeoczenia
Matthias

1
Warto pamiętać, że x *= -1jeśli chcesz zapisać nową wartość , możesz użyć skrótu ...
SRack

Opierając się na tej samej zasadzie, możemy nawet podzielić dowolną liczbę ujemną przez -1. Zastanawiałem się jednak, jaka może być korzyść ze stosowania go w porównaniu z metodą abs, o czym wspomniał Yacoby
Apurva Mayank

1
abs zwraca wartość bezwzględną. Jeśli to wszystko, czego chcesz, tak jak robi to OP, w porządku. Ale co, jeśli musisz chodzić tam iz powrotem?
absynthe Minded web smith

@ApurvaMayank jakie są korzyści z używania abstego? OP nie wspomniał, ale mógł albo zmienić wartość dodatnią na ujemną, albo pozostawić ją pozytywną ... nie można założyć żadnego bez wzmianki o tym.
Andre Figueiredo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.