424 votes

Convertir un nombre négatif en un nombre positif en JavaScript

Existe-t-il une fonction mathématique en JavaScript qui convertit les nombres en valeur positive ?

972voto

ChrisNel52 Points 4014

Vous pourriez utiliser ce...

Math.abs(x)

2 votes

Vous pourriez même envisager ~x+1. C'est assez rapide, mais pas très clair sur ce qu'il fait. J'ai agrandi ça pour montrer la différence : jsperf.com/absolute-int

26 votes

@omgaz Ils ne sont pas les mêmes... var x = -100; ~x+1 === 100 mais var x = 100; ~x+1 === -100 . Math.abs le rend toujours positif, tandis que prendre le complément de celui-ci inverse simplement le signe.

0 votes

Vous pourriez même envisager -x. C'est assez rapide !

118voto

gnclmorais Points 2288

Qu'en est-il x *= -1 ? J'aime sa simplicité.

37 votes

Bien que cette méthode soit simple, elle part du principe que le nombre sera toujours négatif. Si le cas d'utilisation est tel, alors c'est génial. Sinon, je conseille la prudence.

5 votes

Je ne suis pas d'accord avec @myusuf. Tout nombre qui est x sera inversé. Si x = 23 et se retrouve dans cette équation, x sera alors égal à -23 . Selon les mots de M. Escalante, "Un positif multiplié par un négatif est un négatif. Un négatif fois un négatif égale un positif." ... "Comment puis-je atteindre ces kiiiiiiids ?!"

3 votes

Exactement @Shane hier. Si x=23 alors il deviendra -23. Comme le dit la question, "Convertissez un nombre négatif en un nombre positif en JS", mais la méthode ci-dessus permet de retourner n'importe quel nombre, qu'il soit positif ou négatif.

48voto

nightcracker Points 34498

Math.abs(x) ou si vous êtes certains la valeur est négative avant la conversion, il suffit d'ajouter un signe moins normal : x = -x .

31voto

Highway of Life Points 3795

Le signe moins (-) permet de convertir des nombres positifs en nombres négatifs et des nombres négatifs en nombres positifs. x=-y est un sucre visuel pour x=(y*-1) .

var y = -100;
var x =- y;

19voto

Marc B Points 195501
unsigned_value = Math.abs(signed_value);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X