รับจำนวนเต็มและทศนิยมของตัวเลขพร้อมกันด้วย math.modf ใน Python

ธุรกิจ

ฟังก์ชัน modf() ของคณิตศาสตร์ ซึ่งเป็นโมดูลมาตรฐานสำหรับฟังก์ชันทางคณิตศาสตร์ใน Python สามารถใช้เพื่อรับส่วนจำนวนเต็มและทศนิยมของตัวเลขได้พร้อมกัน

ดูบทความต่อไปนี้สำหรับ divmod() ซึ่งรับผลหารและส่วนที่เหลือของการหารพร้อมกัน

รับจำนวนเต็มและส่วนทศนิยมโดยไม่ต้องใช้โมดูลคณิตศาสตร์

การใช้ int() กับประเภททศนิยมแบบทศนิยมจะทำให้ได้ค่าจำนวนเต็มโดยที่จุดทศนิยมถูกตัดออก สามารถใช้เพื่อรับส่วนจำนวนเต็มและส่วนทศนิยม

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

รับจำนวนเต็มและทศนิยมของตัวเลขพร้อมกันด้วย math.modf()

ฟังก์ชัน modf() ในโมดูลคณิตศาสตร์สามารถใช้เพื่อรับส่วนจำนวนเต็มและทศนิยมของตัวเลขได้พร้อมกัน

math.modf() คืนค่า tuple ต่อไปนี้ สังเกตลำดับ เนื่องจากส่วนทศนิยมมาก่อน

  • (decimal, integer)
import math

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

แต่ละส่วนสามารถคลายแพ็กและกำหนดให้กับตัวแปรแยกกันได้ดังนี้ ทั้งส่วนจำนวนเต็มและทศนิยมเป็นประเภททศนิยม

f, i = math.modf(1.5)

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

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

เครื่องหมายจะเหมือนกับเครื่องหมายของค่าเดิมสำหรับทั้งส่วนจำนวนเต็มและทศนิยม

f, i = math.modf(-1.5)

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

ใช้ได้กับประเภท int ในกรณีนี้ ทั้งส่วนจำนวนเต็มและทศนิยมเป็นประเภททศนิยม

f, i = math.modf(100)

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

สามารถใช้วิธีการต่อไปนี้เพื่อตรวจสอบว่าประเภททศนิยมเป็นจำนวนเต็มหรือไม่ (เช่น ส่วนทศนิยมคือ 0) โดยไม่ได้รับส่วนทศนิยม ดูบทความต่อไปนี้

  • float.is_integer()