在 Python 中使用 math.modf 同時獲取數字的整數和小數部分

商業

math 的 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() 返回以下元組 注意順序,因為小數部分在前。

  • (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()