5.4.6 正号和负号
一个数的绝对值就是不带正负号的本值。使用fabs()可以计算一个浮点数的绝对值。
import math
print(math.fabs(-1.1))
print(math.fabs(-0.0))
print(math.fabs(0.0))
print(math.fabs(1.1))
在实际中,float的绝对值表示为一个正值。
运行结果:
1.1
0.0
0.0
1.1
要确定一个值的符号,以便为一组值指定相同的符号或者比较两个值,可以使用copysign()来设置正确值的符号。
import math
HEADINGS = ('f','s','< 0','> 0','= 0')
print('{:^5} {:^5} {:^5} {:^5} {:^5}'.format(*HEADINGS))
print('{:-^5} {:-^5} {:-^5} {:-^5} {:-^5}'.format('','','','',''))
VALUES = [
-1.0,
0.0,
1.0,
float('-inf'),
float('inf'),
float('-nan'),
float('nan'),
]
for f in VALUES:
s = int(math.copysign(1,f))
print('{:5.1f} {:5d} {!s:5} {!s:5} {!s:5}'.format(
f,s,f < 0,f > 0,f == 0,
))
还需要另一个类似copysign()的函数,因为不能将nan和-nan与其他值直接比较。
运行结果: