Ce face math.fmod(), math.remainder() și math.modf()
Operatorul % dă un rest cu semnul împărțitorului. fmod(x, y) dă un rest cu semnul deîmpărțitului (ca în C) și este recomandat pentru float. remainder(x, y) (Python 3.7+) dă restul față de cel mai apropiat multiplu al lui y, deci poate fi negativ chiar pentru numere pozitive.
modf(x) returnează tuplul (parte_fracționară, parte_întreagă), ambele cu semnul lui x.
Parametri
| Parametru | Descriere |
|---|---|
x, y |
Numere. |
Ce returnează
fmod, remainder: float. modf: tuplu de două float.
Exemple
Exemplul 1: Trei feluri de rest
import math
print(-7 % 3, math.fmod(-7, 3), math.remainder(-7, 3))
print(7 % 3, math.fmod(7, 3), math.remainder(7, 3))
print(math.modf(3.75), math.modf(-3.75))
Rezultat
2 -1.0 -1.0
1 1.0 1.0
(0.75, 3.0) (-0.75, -3.0)
Greșeli frecvente
- Te aștepți ca
math.remainder(7, 3)să fie 1. Este 1, darmath.remainder(8, 3)este -1, pentru că 9 este cel mai apropiat multiplu de 3.
Comenzi înrudite
divmod(): Returnează deodată câtul întreg și restul împărțirii: (a // b, a % b).math.floor(), math.ceil() și math.trunc(): Rotunjire în jos, în sus sau prin tăierea zecimalelor, la un număr întreg.math.frexp() și math.ldexp(): Descompun un număr zecimal în mantisă și exponent de 2, și îl recompun.