Dobijte cjelobrojne i decimalne dijelove broja u isto vrijeme pomoću math.modf u Pythonu

Poslovanje

Funkcija modf() matematike, standardni modul za matematičke funkcije u Pythonu, može se koristiti za dobivanje cjelobrojnih i decimalnih dijelova broja istovremeno.

Pogledajte sljedeći članak za divmod(), koji istovremeno dobiva kvocijent i ostatak dijeljenja.

Dobijte cjelobrojne i decimalne dijelove bez matematičkog modula

Primjena int() na tip float s pomičnim zarezom daje cjelobrojnu vrijednost sa skraćenom decimalnim zarezom. Ovo se može koristiti za dobivanje cijelog i decimalnog dijela.

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'>

Dobivanje cijelih i decimalnih dijelova broja istovremeno s math.modf()

Funkcija modf() u matematičkom modulu može se koristiti za istovremeno dobivanje cjelobrojnih i decimalnih dijelova broja.

math.modf() vraća sljedeću torku. Obratite pažnju na redoslijed, budući da je decimalni dio prvi.

  • (decimal, integer)
import math

print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>

Svaki se može raspakirati i dodijeliti zasebnoj varijabli na sljedeći način. I cjelobrojni i decimalni dijelovi su tipovi 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'>

Predznak će biti isti kao predznak izvorne vrijednosti i za cijeli broj i za decimalni dio.

f, i = math.modf(-1.5)

print(i)
print(f)
# -1.0
# -0.5

Primjenjivo na tipove int. U ovom slučaju, i cjelobrojni i decimalni dijelovi su tipovi s plovkom.

f, i = math.modf(100)

print(i)
print(f)
# 100.0
# 0.0

Sljedeća metoda se može koristiti za provjeru je li tip s plutajućim brojem cijeli broj (tj. decimalni dio je 0) bez dobivanja decimalnog dijela. Pogledajte sljedeći članak.

  • float.is_integer()
Copied title and URL