Luvun kokonaisluku- ja desimaaliosien hakeminen samanaikaisesti math.modf-ohjelmalla Pythonissa

liiketoiminta

Pythonin matemaattisten funktioiden standardimoduulin mathin modf()-funktiota voidaan käyttää luvun kokonais- ja desimaaliosien samanaikaiseen laskemiseen.

Katso seuraavassa artikkelissa divmod(), joka saa samanaikaisesti jakolaskun osamäärän ja jäännöksen.

Hae kokonaisluku ja desimaaliosat ilman matematiikkamoduulia

Soveltamalla int()-toimintoa liukulukutyyppiseen liukulukuun saadaan kokonaislukuarvo, jonka desimaalipiste on katkaistu. Tätä voidaan käyttää kokonaislukuosan ja desimaaliosan saamiseksi.

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

Luvun kokonaisluku- ja desimaaliosien samanaikainen hakeminen math.modf() -toiminnolla.

Matematiikkamoduulin funktiota modf() voidaan käyttää luvun kokonais- ja desimaaliosien samanaikaiseen saamiseen.

math.modf() palauttaa seuraavan tuplan Huomaa järjestys, sillä desimaaliosa tulee ensin.

  • (decimal, integer)
import math

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

Kumpikin voidaan purkaa ja määrittää erilliseen muuttujaan seuraavasti Sekä kokonaisluku- että desimaaliosat ovat float-tyyppejä.

f, i = math.modf(1.5)

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

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

Merkki on sama kuin alkuperäisen arvon merkki sekä kokonais- että desimaaliosissa.

f, i = math.modf(-1.5)

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

Sovelletaan int-tyyppeihin. Tässä tapauksessa sekä kokonaisluku että desimaaliosa ovat float-tyyppejä.

f, i = math.modf(100)

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

Seuraavaa menetelmää voidaan käyttää tarkistamaan, onko float-tyyppi kokonaisluku (eli onko desimaaliosa 0) ilman desimaaliosaa. Katso seuraava artikkeli.

  • float.is_integer()
Copied title and URL