Pseudo Engineer

ソフトウェアの話とか書いてくよ

負数の剰余

最近、これ見て、負数の余剰にこういう使い方があるんだーって思いました。
エクセルの角度の算出についての質問です.x,yにある値を代入して,... - Yahoo!知恵袋

処理系によって違うみたいなので、気になって試してみた。

C (Apple LLVM version 6.1.0 (clang-602.0.49))

$ cat mod.c
#include <stdio.h>

int main(void)
{
    printf("%d\n", -150 % 360);
    return 0;
}
$ gcc mod.c && ./a.out
-150

Haskell

Prelude> (-150) `mod` 360
210

Ruby

irb(main):001:0> -150 % 360
=> 210

Scala

scala> -150 % 360
res0: Int = -150

Swift
f:id:jetBeaver:20150421210028p:plain


確かに違いますね。使うときは気をつけましょう。