LoginSignup
16
10

More than 3 years have passed since last update.

負の剰余

Last updated at Posted at 2014-11-24

JavaScriptの剰余では、第1オペランドが正のときは正を、負のときは負を返します。

たとえば、

(-5) % 2

の計算結果は-1になります。
これが自然だと思う人はそれでいいのですが、
僕はこれが気持ち悪いので、常に正を返すようにします。

function mod(i, j) {
    return (i % j) < 0 ? (i % j) + 0 + (j < 0 ? -j : j) : (i % j + 0);
}

iが0のときはマイナスゼロが返ってくることがあり、それも気持ち悪いので
0を加算してマイナスゼロを避けています。

補足: このページによると、
Ruby, Python, Perlでは剰余結果が正になり、
C, Java, PHPでは剰余結果が負になるそうです。

16
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10