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"

Respuestas:


268

Usar absdevolverá el valor absoluto de un número

-300.abs  # 300
300.abs   # 300

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

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.