Ruby: ¿Cambiar un número negativo a positivo?

105

¿Cuál es la forma más sencilla de cambiar un número negativo a positivo con ruby?

es decir. Cambiar "-300" a "300"

Shpigford
fuente

Respuestas:

268

Usar absdevolverá el valor absoluto de un número

-300.abs  # 300
300.abs   # 300
Yacoby
fuente
3
Mi respuesta es solo para números negativos, si necesita tener siempre el valor absoluto, esta es definitivamente la mejor manera.
Brandon Bodnar
27

Ponle un signo negativo delante.

>> --300
=> 300
>> x = -300
=> -300
>> -x
=> 300
Brandon Bodnar
fuente
6
Solo tenga en cuenta que si el número ya es positivo, esto lo hará negativo.
Sasha Chedygov
Si. Aclaró que en mi comentario a la respuesta aceptada anteriormente.
Brandon Bodnar
8
o no es un genio o no es una locura.
Stephen Nguyen
¿Por qué votos negativos? esto se vuelve negativo en positivo, como pidió OP. #absy -son características diferentes con el mismo comportamiento para la entrada / salida solicitada. Si eso se debe a un +-> indeseable -, no es más que una suposición, ya que OP no lo cubrió.
Andre Figueiredo
15

¿No sería más fácil multiplicarlo por uno negativo?

x * -1

De esa manera puedes ir y venir.

absynthe web smith
fuente
Me gusta usar esto para mayor claridad, ya que usar el signo - a veces puede ser fácil de pasar por alto
Matthias
1
Vale la pena recordar que puede usar la abreviatura x *= -1si está buscando almacenar el nuevo valor ...
SRack
Con base en el mismo principio, podemos incluso dividir cualquier número negativo entre -1. Sin embargo, me preguntaba cuál puede ser el beneficio de usarlo sobre el método de abdominales como lo menciona Yacoby
Apurva Mayank
1
abs devuelve un valor absoluto. Si eso es todo lo que quiere, como hace el OP, está bien. Pero, ¿qué pasa si necesitas ir y venir?
absynthe minded web smith
@ApurvaMayank ¿cuál es el beneficio de usar abssobre esto? OP no lo mencionó, pero también podría cambiar de positivo a negativo o mantenerlo positivo ... no se puede asumir uno sin que eso se mencione.
Andre Figueiredo