KDOC 115: 負の値が関わる剰余挙動の違いを試す
この文書のステータス
- 作成
- 2024-03-01 貴島
- レビュー
- 2024-03-24 貴島
言語によって異なる挙動
負の値に対する剰余をしたときの値は、プログラミング言語によって異なる。軽く試したところ2パターンあった。
Go言語。
fmt.Println(-8 % 5) fmt.Println(8 % -5)
-3 3
C言語。
printf("%d\n", -8 % 5); printf("%d\n", 8 % -5);
-3 3
(format "%s\n%s" (number-to-string (% -8 5)) (number-to-string (% 8 -5)))
-3 3
print(-8 % 5) print(8 % -5)
2 -2
Ruby。
sprintf("%d\n%d", -8 % 5, 8 % -5)
2 -2
関連
- 疑問: 試した2パターン以外が存在するか