Dapatkan bahagian integer dan perpuluhan nombor pada masa yang sama dengan math.modf dalam Python

Perniagaan

Fungsi modf() matematik, modul standard untuk fungsi matematik dalam Python, boleh digunakan untuk mendapatkan bahagian integer dan perpuluhan nombor secara serentak.

Lihat artikel berikut untuk divmod(), yang pada masa yang sama memperoleh hasil bagi dan baki pembahagian.

Dapatkan bahagian integer dan perpuluhan tanpa modul matematik

Menggunakan int() pada jenis floating-point float menghasilkan nilai integer dengan titik perpuluhan dipenggal. Ini boleh digunakan untuk mendapatkan bahagian integer dan bahagian perpuluhan.

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

Dapatkan bahagian integer dan perpuluhan nombor serentak dengan math.modf()

Fungsi modf() dalam modul matematik boleh digunakan untuk mendapatkan bahagian integer dan perpuluhan nombor secara serentak.

math.modf() mengembalikan tuple berikut Perhatikan susunannya, kerana bahagian perpuluhan didahulukan.

  • (decimal, integer)
import math

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

Setiap satu boleh dibongkar dan diperuntukkan kepada pembolehubah berasingan seperti berikut Kedua-dua bahagian integer dan perpuluhan adalah jenis apungan.

f, i = math.modf(1.5)

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

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

Tanda akan sama dengan tanda nilai asal untuk kedua-dua bahagian integer dan perpuluhan.

f, i = math.modf(-1.5)

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

Berkenaan dengan jenis int. Dalam kes ini, kedua-dua bahagian integer dan perpuluhan adalah jenis apungan.

f, i = math.modf(100)

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

Kaedah berikut boleh digunakan untuk menyemak sama ada jenis apungan ialah integer (iaitu, bahagian perpuluhan ialah 0) tanpa mendapatkan bahagian perpuluhan. Lihat artikel berikut.

  • float.is_integer()
Copied title and URL