Python math.frexp() 方法



Python math.frexp() 方法用于将浮点数分解为其标准化分数和指数。

  • 给定浮点数 x,math.frexp(x) 方法返回一个元组“(m, e)”,其中 “m” 是标准化分数(也称为有效数或尾数),“e” 是指数。
  • 标准化分数 “m” 是一个浮点数,表示数字 x 的小数部分,大于或等于 0.5 且小于 1.0。
  • 指数 “e” 是一个整数,表示 2 的幂,将归一化分数乘以得到原始数字 x。

在数学上,对于非零浮点数 x,它可以表示为 -

x = m × 2e

其中,“m” 是归一化分数,“e” 是指数。

语法

以下是 Python math.frexp() 方法的基本语法 -


 math.frexp(x)

参数

此方法接受一个数值作为参数,该参数表示要分解的浮点数。

返回值

该方法返回一个元组“(m, e)”,其中 “m” 是表示标准化分数的浮点数,“e” 是表示指数的整数。

分数 “m” 满足条件 “0.5 <= abs(m) < 1.0”,并且 “x” 大约等于 “m * 2**e”。如果 “x” 为零,则 “m” 和 “e” 均为零。如果 “x” 是 NaN 或无穷大,则 “m” 和 “e” 都是 NaN 或无穷大。

示例 1

在下面的示例中,我们使用 frexp() 方法计算浮点数 10 的尾数和指数 -


import math
mantissa, exponent = math.frexp(10)
print("The result obtained is:",mantissa, exponent)	

输出

获得的输出如下 -

The result obtained is: 0.625 4

示例 2

在这里,我们计算的是负浮点数 “-5” 的尾数和指数 -


import math
mantissa, exponent = math.frexp(-5)
print("The result obtained is:",mantissa, exponent)	

输出

以下是上述代码的输出 -

The result obtained is: -0.625 3

示例 3

现在,我们使用 frexp() 方法计算小数的尾数和指数 -


import math
mantissa, exponent = math.frexp(0.75)
print("The result obtained is:",mantissa, exponent) 	

输出

我们得到的输出如下所示 -

The result obtained is: 0.75 0

示例 4

在此示例中,我们计算浮点数 0 的尾数和指数。由于 0 没有大小,因此尾数和指数都是 0 -


import math
mantissa, exponent = math.frexp(0)
print("The result obtained is:",mantissa, exponent) 	

输出

生成的结果如下所示 -

The result obtained is: 0.0 0