据我所知,三角函数有近似值。但是有没有办法去除360的罪的负号.sin x列是中间的。我不想为degrees = 360创建一个特殊情况,并告诉它为sin(360)打印0.0000。
答案 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()的更多信息: