Ruby: Mudar número negativo para número positivo?

105

Qual é a maneira mais simples de transformar um número negativo em positivo com o rubi?

ie. Altere "-300" para "300"

Shpigford
fonte

Respostas:

268

Usar absretornará o valor absoluto de um número

-300.abs  # 300
300.abs   # 300
Yacoby
fonte
3
minha resposta é apenas para números negativos, se você precisa sempre ter o valor absoluto, esta é definitivamente a melhor maneira.
Brandon Bodnar
27

Coloque um sinal negativo na frente dele.

>> --300
=> 300
>> x = -300
=> -300
>> -x
=> 300
Brandon Bodnar
fonte
6
Observe que, se o número já for positivo, ele será negativo.
Sasha Chedygov
Sim. Esclarecido que em meu comentário à resposta aceita acima.
Brandon Bodnar
8
ou não é gênio ou não é loucura.
Stephen Nguyen
porque votos negativos? isso torna-se negativo em positivo conforme a OP perguntou. #abse -são recursos diferentes com o mesmo comportamento para entradas / saídas solicitadas. Se for por causa de um indesejável +-> -, não é mais do que uma suposição, já que isso não foi coberto pelo OP.
André Figueiredo
15

Não seria mais fácil multiplicar por um negativo?

x * -1

Dessa forma, você pode ir e voltar.

absyn the minded web smith
fonte
Eu gosto de usar isso para maior clareza, já que usar o sinal - às vezes pode ser fácil de perder
Matthias
1
Vale a pena lembrar que você pode usar a abreviatura x *= -1se quiser armazenar o novo valor ...
SRack
Com base no mesmo princípio, podemos até dividir qualquer número negativo por -1. No entanto, eu estava me perguntando qual pode ser a vantagem de usá-lo sobre o método de abs, conforme mencionado por Yacoby
Apurva
1
abs retorna um valor absoluto. Se isso é tudo que você quer, como o OP faz, tudo bem. Mas e se você precisar ir e voltar?
absynthe minded web smith
@ApurvaMayank qual é a vantagem de usar abssobre isso? OP não mencionou, mas ele também pode transformar o positivo em negativo ou mantê-lo positivo ... você não pode assumir um sem que isso seja mencionado.
André Figueiredo