格式化:有没有办法去除负号?

时间:2017-11-03 21:26:40

标签: python

据我所知,三角函数有近似值。但是有没有办法去除360的罪的负号.sin x列是中间的。我不想为degrees = 360创建一个特殊情况,并告诉它为sin(360)打印0.0000。

My code

2 个答案:

答案 0 :(得分:1)

发生了什么sin(radians(360))正在返回一个非常小的负浮动值(-2.4492935982947064e-16)。要将一个小的负浮点数格式化为正0,您可以先将其舍入为正0,然后加0,使其变为正0:

from math import sin, radians

for x in range(0, 361, 10):
    print("{:3d}  {:6.3f}".format(x, round(sin(radians(x)), 3) + 0))

输出

  0   0.000
 10   0.174
 20   0.342
 30   0.500
 40   0.643
 50   0.766
 60   0.866
 70   0.940
 80   0.985
 90   1.000
100   0.985
110   0.940
120   0.866
130   0.766
140   0.643
150   0.500
160   0.342
170   0.174
180   0.000
190  -0.174
200  -0.342
210  -0.500
220  -0.643
230  -0.766
240  -0.866
250  -0.940
260  -0.985
270  -1.000
280  -0.985
290  -0.940
300  -0.866
310  -0.766
320  -0.643
330  -0.500
340  -0.342
350  -0.174
360   0.000

答案 1 :(得分:-1)

abs()会做到这一点。它返回一个数字的绝对值。

abs(10) #will evaluate to 10
abs(-25) #will evaluate to 25
abs(-2.53) #will evaluate to 2.53

abs(math.sin(radian)) #Use it like this on your code

有关内置函数和abs()的更多信息:

https://docs.python.org/3/library/functions.html#abs