web-dev-qa-db-fra.com

Nombre positif à nombre négatif en JavaScript?

Fondamentalement, l'inverse des abs. Si j'ai:

if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)

Peu importe la console, renvoie TOUJOURS un nombre positif. Comment puis-je réparer ça?

Si je fais:

if($this.find('.pdxslide-activeSlide').index() < slideNum-1){
_selector.animate({left:(-slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}
else{
_selector.animate({left:(slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}

cela fonctionne bien, mais ce n'est pas "sec" et juste stupide d'avoir un bloc entier de code juste pour un -

76
Oscar Godson
Math.abs(num) => Always positive
-Math.abs(num) => Always negative

Vous réalisez cependant que pour votre code

if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)

Si l'index trouvé est 3 et si slideNum est 3,
alors 3 <3-1 => faux
so slideNum reste positif ??

Cela ressemble plus à une erreur de logique pour moi.

159
RichardTheKiwi

Le revers de abs est Math.abs(num) * -1.

71
Jakub Hampl

La formule de base pour inverser positif à négatif ou négatif à positif:

i - (i * 2)
24
Blake

Pour obtenir une version négative d'un nombre en JavaScript, vous pouvez toujours utiliser l'opérateur bitwise ~.

Par exemple, si vous avez a = 1000 Et que vous devez le convertir en négatif, vous pouvez procéder comme suit:

a = ~a + 1;

ce qui donnerait a étant -1000.

7
Benjamin Williams

Êtes-vous sûr que le contrôle va dans le corps du if? Comme dans le cas de la condition dans if est-elle toujours vraie? Parce que sinon, le corps du if ne sera jamais exécuté et slideNum restera positif. Je vais risquer de penser que c'est probablement ce que vous voyez.

Si j'essaye ce qui suit dans Firebug, cela semble fonctionner:

>>> i = 5; console.log(i); i = -i; console.log(i);
5
-5

slideNum *= -1 Devrait également fonctionner. De même que Math.abs(slideNum) * -1.

6
Vivin Paliath
var x = 100;
var negX = ( -x ); // => -100
5
tpayne84

Si vous ne souhaitez pas utiliser Math.Abs ​​* -1, vous pouvez utiliser cette simple instruction if: P

if (x > 0) {
    x = -x;
}

Bien sûr, vous pouvez en faire une fonction comme celle-ci

function makeNegative(number) {
    if (number > 0) {
        number = -number;
    }
}

makeNegative (-3) => -3 makeNegative (5) => -5

J'espère que cela t'aides! Math.abs fonctionnera probablement pour vous, mais si ce n'est pas si peu

4
Ash Pettit
var i = 10;
i = i / -1;

Résultat: -10

var i = -10;
i = i / -1;

Résultat: 10

Si vous divisez par 1, le nombre sera toujours inversé.

2
Jeff Price
num * -1

Cela le ferait pour vous.

1
Vibhor Dube

Utilisez 0 - x

x étant le nombre que vous voulez inverser

1
milesman34

À la vanille javascript

if(number > 0)
  return -1*number;

nombre ci-dessus est le nombre positif que vous souhaitez convertir.

Ce code convertira simplement les nombres positifs en nombres négatifs en multipliant par -1

0
perfo