C | Python > マイナス値のmodulo(%)演算 > C:マイナスを返す | Python:プラスを返す
Pythonで一定時間ごとに処理を実行する
の実装で以下のmodulo(%)演算はマイナス値が返ると思っていた自分がいました。
next_time = ((base_time - time.time()) % interval) or interval
C
#include <stdio.h>
int main(void) {
int val = -3;
printf("%d\n", val % 5);
return 0;
}
-3
Python 3.5
val=-3
print(val % 5)
2
備考
Pythonをよく使う人は知っていることなのかもしれない。
https://docs.python.org/3/reference/expressions.html
下記の赤文字は強調のため色付けした。
The % (modulo) operator yields the remainder from the division of the first argument by the second. The numeric arguments are first converted to a common type. A zero right argument raises the ZeroDivisionError exception. The arguments may be floating point numbers, e.g., 3.14%0.7 equals 0.34 (since 3.14 equals 4*0.7 + 0.34.) The modulo operator always yields a result with the same sign as its second operand (or zero); the absolute value of the result is strictly smaller than the absolute value of the second operand
Author And Source
この問題について(C | Python > マイナス値のmodulo(%)演算 > C:マイナスを返す | Python:プラスを返す), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/ca1f2ad5bdf8d43869fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .