Ruby: Changer le nombre négatif en nombre positif?


105

Quelle est la façon la plus simple de changer un nombre négatif en positif avec rubis?

c'est à dire. Remplacez "-300" par "300"

Réponses:


268

L'utilisation absretournera la valeur absolue d'un nombre

-300.abs  # 300
300.abs   # 300

3
ma réponse est juste pour les nombres négatifs, si vous devez toujours avoir la valeur absolue, c'est certainement le meilleur moyen.
Brandon Bodnar

27

Mettez un signe négatif devant lui.

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

6
Notez simplement que si le nombre est déjà positif, cela le rendra négatif.
Sasha Chedygov

Ouais. Clarifié cela dans mon commentaire à la réponse acceptée ci-dessus.
Brandon Bodnar

8
ce n'est pas du génie ou pas de la folie.
Stephen Nguyen

pourquoi des votes négatifs? cela devient négatif comme OP l'a demandé. #abset -sont des fonctionnalités différentes avec le même comportement pour l'entrée / sortie demandée. Si c'est à cause d'un indésirable +-> -, ce n'est rien de plus qu'une hypothèse, car cela n'a pas été couvert par OP.
Andre Figueiredo le

15

Ne serait-il pas plus simple de le multiplier par un négatif?

x * -1

De cette façon, vous pouvez aller et venir.


J'aime l'utiliser pour plus de clarté, car l'utilisation du signe - peut parfois être facile à manquer
Matthias

1
Il convient de rappeler que vous pouvez utiliser le raccourci x *= -1si vous souhaitez stocker la nouvelle valeur ...
SRack

Basé sur le même principe, nous pouvons même diviser tout nombre négatif par -1. Cependant, je me demandais simplement quel pouvait être l'avantage de l'utiliser sur la méthode des abdominaux comme mentionné par Yacoby
Apurva Mayank

1
abs renvoie une valeur absolue. Si c'est tout ce que vous voulez, comme le fait l'OP, c'est bien. Mais que faire si vous avez besoin de faire des allers-retours?
absynthe minded web smith

@ApurvaMayank quel est l'avantage d'utiliser par absrapport à cela? OP n'a pas mentionné, mais il pouvait soit devenir positif en négatif soit le garder positif ... vous ne pouvez pas en supposer un sans que cela soit mentionné.
Andre Figueiredo le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.