Ruby: Negatif sayıyı pozitif sayıya değiştirmek mi?


105

Ruby ile negatif bir sayıyı pozitife çevirmenin en basit yolu nedir?

yani. "-300" ü "300" olarak değiştirin

Yanıtlar:


269

Kullanmak bir sayının mutlak değeriniabs döndürür

-300.abs  # 300
300.abs   # 300

3
Cevabım sadece negatif sayılar için, her zaman mutlak değere sahip olmanız gerekiyorsa, bu kesinlikle daha iyi bir yoldur.
Brandon Bodnar

27

Önüne negatif bir işaret koyun.

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

6
Sadece sayı zaten pozitifse, bunun negatif yapacağını unutmayın.
Sasha Chedygov

Evet. Yukarıdaki kabul edilen cevaba yaptığım yorumda açıklığa kavuşturuldu.
Brandon Bodnar

8
ya deha ya da delilik değil.
Stephen Nguyen

neden olumsuz oylar? bu, OP'nin sorduğu gibi negatifi olumluya çevirir. #absve -istenen girdi / çıktı için aynı davranışa sahip farklı özelliklerdir. Bu istenmeyen bir +-> yüzünden ise -, bu bir varsayımdan başka bir şey değildir, çünkü bu, OP tarafından kapsanmamıştır.
Andre Figueiredo

15

Negatif bir ile çarpmak daha kolay olmaz mıydı?

x * -1

Bu şekilde ileri geri gidebilirsiniz.


Bunu netlik için kullanmayı seviyorum, çünkü - işaretini kullanmak bazen kolayca gözden
Matthias

1
x *= -1Yeni değeri saklamak istiyorsanız kısaltmayı kullanabileceğinizi hatırlamakta
fayda var

Aynı prensibe dayanarak herhangi bir negatif sayıyı -1'e bile bölebiliriz. Bununla birlikte, Yacoby
Apurva Mayank

1
abs, mutlak bir değer döndürür. Tüm istediğiniz buysa, OP'nin yaptığı gibi, sorun değil. Peki ya ileri geri gitmeniz gerekirse?
absynthe minded web smith

@ApurvaMayank absbunu kullanmanın faydası nedir? OP'den bahsetmedi ama ya olumlu da olumsuza dönebilir ya da olumlu tutabilirdi .. Bundan bahsedilmeden bir tane varsayamazsınız.
Andre Figueiredo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.