Získanie celočíselnej a desiatkovej časti čísla súčasne pomocou funkcie math.modf v jazyku Python

obchodné

Funkciu modf() z math, štandardného modulu pre matematické funkcie v jazyku Python, možno použiť na získanie celočíselnej a desiatkovej časti čísla súčasne.

Pozri nasledujúci článok o funkcii divmod(), ktorá súčasne získava kvocient a zvyšok delenia.

Získanie celočíselných a desatinných častí bez matematického modulu

Použitím funkcie int() na typ float s pohyblivou desatinnou čiarkou sa získa celočíselná hodnota so skrátenou desatinnou čiarkou. To možno použiť na získanie celočíselnej časti a desatinnej časti.

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

Získanie celočíselnej a desatinnej časti čísla súčasne pomocou funkcie math.modf()

Funkciu modf() v module math možno použiť na súčasné získanie celočíselnej a desatinnej časti čísla.

Math.modf() vráti nasledujúci tuple Všimnite si poradie, pretože desatinná časť je na prvom mieste.

  • (decimal, integer)
import math

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

Každú z nich možno rozbaliť a priradiť do samostatnej premennej takto Celočíselná aj desatinná časť sú typy 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'>

Znamienko bude rovnaké ako znamienko pôvodnej hodnoty pre celú aj desatinnú časť.

f, i = math.modf(-1.5)

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

Platí pre typy int. V tomto prípade sú celočíselné aj desatinné časti typu float.

f, i = math.modf(100)

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

Nasledujúca metóda môže byť použitá na kontrolu, či je typ float celé číslo (t. j. desatinná časť je 0) bez získania desatinnej časti. Pozri nasledujúci článok.

  • float.is_integer()
Copied title and URL