Kumuha ng integer at decimal na bahagi ng isang numero nang sabay sa math.modf sa Python

Negosyo

Ang modf() function ng math, ang karaniwang module para sa mathematical function sa Python, ay maaaring gamitin upang makuha ang integer at decimal na bahagi ng isang numero nang sabay-sabay.

Tingnan ang sumusunod na artikulo para sa divmod(), na sabay-sabay na nakakakuha ng quotient at natitira sa isang dibisyon.

Kumuha ng mga bahagi ng integer at decimal na walang module ng matematika

Ang paglalapat ng int() sa isang floating-point float type ay magbubunga ng isang integer na halaga na ang decimal point ay pinutol. Magagamit ito para makuha ang bahaging integer at bahaging desimal.

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

Kumuha ng integer at decimal na bahagi ng isang numero nang sabay-sabay sa math.modf()

Ang function na modf() sa math module ay maaaring gamitin upang sabay na makuha ang integer at decimal na bahagi ng isang numero.

Ang math.modf() ay nagbabalik ng sumusunod na tuple Tandaan ang pagkakasunud-sunod, dahil ang decimal na bahagi ang mauna.

  • (decimal, integer)
import math

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

Ang bawat isa ay maaaring i-unpack at italaga sa isang hiwalay na variable bilang mga sumusunod Ang parehong mga bahagi ng integer at decimal ay mga uri ng 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'>

Ang sign ay magiging kapareho ng sign ng orihinal na halaga para sa parehong integer at decimal na bahagi.

f, i = math.modf(-1.5)

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

Naaangkop sa mga uri ng int. Sa kasong ito, parehong mga bahagi ng integer at decimal ay mga uri ng float.

f, i = math.modf(100)

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

Ang sumusunod na paraan ay maaaring gamitin upang suriin kung ang isang float type ay isang integer (ibig sabihin, ang decimal na bahagi ay 0) nang hindi nakukuha ang decimal na bahagi. Tingnan ang sumusunod na artikulo.

  • float.is_integer()
Copied title and URL