Funcția modf() din math, modulul standard pentru funcțiile matematice din Python, poate fi utilizată pentru a obține simultan părțile întregi și zecimale ale unui număr.
A se vedea următorul articol pentru divmod(), care obține simultan coeficientul și restul unei împărțiri.
Obțineți părți întregi și zecimale fără modul matematic
Dacă se aplică int() la un tip float în virgulă mobilă, se obține o valoare întreagă cu virgula zecimală trunchiată. Acest lucru poate fi utilizat pentru a obține partea întreagă și partea zecimală.
a = 1.5
i = int(a)
f = a - int(a)
print(i)
print(f)
# 1
# 0.5
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
Obțineți simultan părțile întregi și zecimale ale unui număr cu math.modf()
Funcția modf() din modulul matematic poate fi utilizată pentru a obține simultan partea întreagă și partea zecimală a unui număr.
math.modf() returnează următorul tuple Observați ordinea, deoarece partea zecimală este prima.
(decimal, integer)
import math
print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>
Fiecare poate fi despachetată și atribuită unei variabile separate, după cum urmează Atât partea întreagă, cât și cea zecimală sunt de tip float.
f, i = math.modf(1.5)
print(i)
print(f)
# 1.0
# 0.5
print(type(i))
print(type(f))
# <class 'float'>
# <class 'float'>
Semnul va fi același cu semnul valorii originale atât pentru partea întreagă, cât și pentru cea zecimală.
f, i = math.modf(-1.5)
print(i)
print(f)
# -1.0
# -0.5
Se aplică la tipurile int. În acest caz, atât partea întreagă, cât și cea zecimală sunt de tip float.
f, i = math.modf(100)
print(i)
print(f)
# 100.0
# 0.0
Următoarea metodă poate fi utilizată pentru a verifica dacă un tip float este un întreg (adică partea zecimală este 0) fără a obține partea zecimală. A se vedea următorul articol.
float.is_integer()