Hent hele tal og decimale dele af et tal på samme tid med math.modf i Python

Forretning

Funktionen modf() i math, standardmodulet for matematiske funktioner i Python, kan bruges til at få den hele og decimale del af et tal på samme tid.

Se den følgende artikel om divmod(), som på samme tid får kvotienten og resten af en division frem.

Hent hele tal og decimale dele uden matematisk modul

Anvendelse af int() på en float-type med flydende komma giver en heltalsværdi med decimalkommaet afkortet. Dette kan bruges til at få den hele taldel og den decimale del.

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

Få hele og decimale dele af et tal på samme tid med math.modf()

Funktionen modf() i matematikmodulet kan bruges til samtidig at få den hele og den decimale del af et tal.

math.modf() returnerer følgende tupel Bemærk rækkefølgen, da decimaldelen kommer først.

  • (decimal, integer)
import math

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

Hver af dem kan pakkes ud og tildeles en separat variabel på følgende måde Både hele tal og decimale dele er float-typer.

f, i = math.modf(1.5)

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

print(type(i))
print(type(f))
# <class 'float'>
# <class 'float'>

Fortegnet vil være det samme som fortegnet for den oprindelige værdi for både hele tal og decimale dele.

f, i = math.modf(-1.5)

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

Gælder for int-typer. I dette tilfælde er både hele tal og decimale dele float-typer.

f, i = math.modf(100)

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

Følgende metode kan bruges til at kontrollere, om en float-type er et heltal (dvs. at decimaldelen er 0) uden at få decimaldelen frem. Se følgende artikel.

  • float.is_integer()
Copied title and URL