我注意到在python中有两种类似的方法来查找数字的绝对值:
第一
abs(-5)
第二
import math
math.fabs(-5)
这些方法有何不同?
发布于 2012-05-27 15:21:00
如果可以,math.fabs()
将其参数转换为float (如果不能,则抛出异常)。然后它获取绝对值,并以浮点数的形式返回结果。
除了浮点数之外,abs()
还可以处理整数和复数。它的返回类型取决于其参数的类型。
In [7]: type(abs(-2))
Out[7]: int
In [8]: type(abs(-2.0))
Out[8]: float
In [9]: type(abs(3+4j))
Out[9]: float
In [10]: type(math.fabs(-2))
Out[10]: float
In [11]: type(math.fabs(-2.0))
Out[11]: float
In [12]: type(math.fabs(3+4j))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/npe/<ipython-input-12-8368761369da> in <module>()
----> 1 type(math.fabs(3+4j))
TypeError: can't convert complex to float
发布于 2012-05-27 15:22:25
math.fabs()
总是返回float,而abs()
可能返回integer。
发布于 2018-02-05 21:46:21
abs()
:根据参数返回绝对值,即如果参数为整型,则返回整型;如果参数为浮点型,则返回浮点型。此外,它还适用于复杂变量,即abs(a+bj)
也适用并返回绝对值,即math.sqrt(((a)**2)+((b)**2)
math.fabs()
:它只对整数值或浮点值有效。无论参数类型是什么(复数除外),始终返回绝对浮点值。
https://stackoverflow.com/questions/10772302
复制相似问题