2017-07-22 2 views
-1

Je donne les résultats suivants:L'opérateur de module ne se comporte pas comme prévu dans javascript?

-1 mod 5 

Je vous attendre à obtenir 4.

Cependant, dans JS (-1 % 5), j'obtiens -1.

Qu'est-ce que je fais mal?

+1

Par quelle logique voulez-vous obtenir 4? –

+0

@torazaburo google logic: https://www.google.com/search?q=-1+mod+5&rlz=1C1CHZL_enUS749US749&oq=-1+mod+5&aqs=chrome.0.69i59.2215j0j1&sourceid=chrome&ie=UTF-8 – SB2055

+1

Le le nombre -1 est égal à 4 (modulo 5). – Pointy

Répondre

1

mod est le reste lorsque vous divisez le nombre par le diviseur. En mode Math -1%5 = -1, Js fonctionne comme prévu.

Vous ne faites rien de mal. Si vous voulez obtenir un nombre positif (la différence), ajoutez le numéro du diviseur au résultat.

var result = (-1 % 5) + 5; 

Peu importe où vous ajoutez le numéro avant le module ou après. C'est un calcul pur.

+1

https://www.google.com/search? q = -1 + mod + 5 & rlz = 1C1CHZL_enUS749US749 & oq = -1 + mod + 5 & aqs = chrome.0.69i59.2215j0j1 & sourceid = chrome & ie = UTF-8 – SB2055