Fáðu heiltölu og aukastafa hluta af tölu á sama tíma með math.modf í Python

Viðskipti

Modf() fallið í stærðfræði, stöðluðu einingunni fyrir stærðfræðilegar aðgerðir í Python, er hægt að nota til að fá heiltölu og tugahluta tölunnar samtímis.

Sjá eftirfarandi grein fyrir divmod(), sem fær samtímis stuðulinn og afganginn af deilingu.

Fáðu heiltölu og aukastafi án stærðfræðieiningu

Með því að nota int() á flotategund með flottölu gefur það heiltölugildi með tugastafinn styttan. Þetta er hægt að nota til að fá heiltöluhlutann og tugahlutann.

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áðu heiltölu og tugabrot af tölu samtímis með math.modf()

Hægt er að nota fallið modf() í stærðfræðieiningunni til að fá samtímis heiltölu og tugahluta tölu.

math.modf() skilar eftirfarandi tuple Athugaðu röðina, þar sem aukastafurinn kemur fyrst.

  • (decimal, integer)
import math

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

Hægt er að pakka hverjum og einum upp og úthluta í sérstaka breytu sem hér segir. Bæði heiltölu- og tugahlutar eru flotgerðir.

f, i = math.modf(1.5)

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

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

Táknið verður það sama og merki upprunalega gildisins fyrir bæði heiltölu og aukastaf.

f, i = math.modf(-1.5)

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

Gildir fyrir int tegundir. Í þessu tilviki eru bæði heiltölu- og tugahlutar flotgerðir.

f, i = math.modf(100)

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

Eftirfarandi aðferð er hægt að nota til að athuga hvort flotgerð sé heiltala (þ.e. tugahlutinn er 0) án þess að fá tugahlutinn. Sjá eftirfarandi grein.

  • float.is_integer()