Ruby: Ubah angka negatif menjadi angka positif?


105

Apa cara paling sederhana untuk mengubah angka negatif menjadi positif dengan ruby?

yaitu. Ubah "-300" menjadi "300"

Jawaban:


268

Menggunakan absakan mengembalikan nilai absolut sebuah angka

-300.abs  # 300
300.abs   # 300

3
jawaban saya hanya untuk bilangan negatif, jika Anda harus selalu memiliki nilai absolut maka ini pasti cara yang lebih baik.
— Brandon Bodnar

27

Letakkan tanda negatif di depannya.

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

6
Perhatikan saja jika angkanya sudah positif, ini akan menjadikannya negatif.
— Sasha Chedygov

Ya. Memperjelas bahwa dalam komentar saya untuk jawaban yang diterima di atas.
— Brandon Bodnar

8
itu bukan jenius atau bukan kegilaan.
— Stephen Nguyen

mengapa suara negatif? ini berubah negatif menjadi positif seperti yang diminta OP. #absdan -merupakan fitur berbeda dengan perilaku yang sama untuk input / output yang diminta. Jika itu karena yang tidak diinginkan +-> -, itu tidak lebih dari asumsi, karena itu tidak tercakup oleh OP.
— Andre Figueiredo

15

Bukankah lebih mudah mengalikannya dengan yang negatif?

x * -1

Dengan begitu Anda bisa bolak-balik.


Saya suka menggunakan ini untuk kejelasan, karena menggunakan tanda - terkadang mudah terlewatkan
— Matthias

1
Perlu diingat Anda dapat menggunakan singkatan x *= -1jika Anda ingin menyimpan nilai baru ...
— SRack

Berdasarkan prinsip yang sama, kita bahkan dapat membagi bilangan negatif apa pun dengan -1. Namun, saya hanya bertanya-tanya apa manfaat menggunakan metode over abs seperti yang disebutkan oleh Yacoby
— Apurva Mayank

1
abs mengembalikan nilai absolut. Jika hanya itu yang Anda inginkan, seperti yang dilakukan OP, tidak masalah. Tetapi bagaimana jika Anda perlu bolak-balik?
— absynthe minded web smith

@ApurvaMayank apa manfaat menggunakan absini? OP tidak menyebutkan, tetapi dia dapat mengubah positif menjadi negatif juga atau tetap positif .. Anda tidak dapat mengasumsikan satu tanpa disebutkan.
— Andre Figueiredo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.