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