Pythoni matemaatiliste funktsioonide standardmooduli math funktsiooni modf() saab kasutada numbri täisarvulise ja kümnendosa samaaegseks saamiseks.
Vaata järgmist artiklit divmod() kohta, mis annab samaaegselt jagamise korrutise ja jäägi.
Saada täisarvu- ja kümnendosad ilma matemaatikamoodulita
Rakendades int() ujukoma-tüüpi ujukoma-tüübile, saadakse täisarvuline väärtus, mille kümnendkoht on kärbitud. Seda saab kasutada täisarvu osa ja kümnendosa saamiseks.
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'>
Arvude täisarvuliste ja kümnendosade samaaegne saamine math.modf() abil
Matemaatikamooduli funktsiooni modf() saab kasutada numbri täisarvulise ja kümnendosa samaaegseks saamiseks.
math.modf() tagastab järgmise tupli Pange tähele järjekorda, sest kümnendosa on kõigepealt.
(decimal, integer)
import math
print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>
Mõlemat saab lahti pakkida ja määrata eraldi muutujale järgmiselt Nii täisarvu- kui ka kümnendosa on float-tüüpi.
f, i = math.modf(1.5)
print(i)
print(f)
# 1.0
# 0.5
print(type(i))
print(type(f))
# <class 'float'>
# <class 'float'>
Märk on sama, mis algväärtuse märk nii täisarvu kui ka kümnendosa puhul.
f, i = math.modf(-1.5)
print(i)
print(f)
# -1.0
# -0.5
Kohaldatakse int-tüüpide suhtes. Sellisel juhul on nii täisarvu- kui ka kümnendosa float-tüüpi.
f, i = math.modf(100)
print(i)
print(f)
# 100.0
# 0.0
Järgmise meetodiga saab kontrollida, kas float-tüüpi arv on täisarv (st kümnendosa on 0), ilma kümnendosa saamata. Vt järgmist artiklit.
float.is_integer()