Di seguito è some code in C++. Se provi qualcosa come -2%5
in python il risultato è positivo 3 mentre molti altri linguaggi come C++ C# (code) e flash danno -2Come funziona il modulo e perché è diverso in Python rispetto alla maggior parte delle lingue?
Perché danno -2 ed è una versione più corretta dell'altra?
#include <cstdio>
int main(){
printf("%d\n", 2%5);
printf("%d\n", -2%5);
printf("%d\n", -2%77);
printf("%d\n", 2%-77);
printf("%d\n", -2%-77);
}
uscita:
2
-2
-2
2
-2
E 'implementazione definita in C++ 98 (e C-90). È ben definito in C++ 11 (e C-99): il segno del risultato dell'operatore modulo è lo stesso del segno del dividendo. In Python, il risultato ha lo stesso segno del divisore. Quale modo di interpretare le cose è un po 'un lancio di moneta.Ciò che ha più senso per me sono i linguaggi che forniscono entrambe le implementazioni, così come il programmatore può scegliere quello che ha più senso in qualche contesto particolare. –