Ce face int.remainder
a.remainder(b) dă restul împărțirii lui a la b, calculat ca a - (a ~/ b) * b. Rezultatul are semnul lui a: (-7).remainder(3) este -1.
Operatorul % dă mereu un rest pozitiv (modulo euclidian): -7 % 3 este 2. Pentru numere pozitive cele două sunt identice. Alege % pentru „ciclic” (ziua săptămânii, poziția în listă) și remainder când vrei comportamentul din C sau Java.
Parametri
| Parametru | Descriere |
|---|---|
other |
Împărțitorul. Dacă este 0 (întreg), aruncă UnsupportedError. |
Ce returnează
Un int (sau double, dacă other este double).
Exemple
Exemplul 1: remainder față de %
void main() {
for (var (a, b) in [(7, 3), (-7, 3), (7, -3), (-7, -3)]) {
print('$a și $b: remainder=${a.remainder(b)}, %=${a % b}');
}
print(7.5.remainder(2));
}
Rezultat
7 și 3: remainder=1, %=1
-7 și 3: remainder=-1, %=2
7 și -3: remainder=1, %=1
-7 și -3: remainder=-1, %=2
1.5
Exemplul 2: Ore și minute dintr-un total de minute
void main() {
var minute = 135;
print('${minute ~/ 60} h ${minute.remainder(60)} min');
var intarziere = -135;
print('${intarziere ~/ 60} h ${intarziere.remainder(60)} min');
}
Rezultat
2 h 15 min
-2 h -15 min
Greșeli frecvente
- Folosești
remainderpentru a calcula un index ciclic:(i - 1).remainder(n)poate fi negativ și dăRangeErrorla accesarea listei. Folosește%.
Comenzi înrudite
int.isEven: Spune dacă un întreg este par (isEven) sau impar (isOdd).int.gcd: gcd dă cel mai mare divizor comun; modPow calculează (n la puterea e) modulo m, fără depășire.int: Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.