python中sin(45)和cos(45)的值不同,尽管它们是等效的

python中sin(45)和cos(45)的值不同,尽管它们是等效的,python,math,trigonometry,Python,Math,Trigonometry,我正在制作一个程序来计算物体移动的距离,但是当我使用45作为角度运行程序时,sin45和cos45是等效的,垂直高度和水平高度的输出是不同的 import math angle = float(input("Enter Angle of Movement(In Degrees): ")) print("Angle is: ",angle,"°") horizontal_distance = (abs(overall_distance

我正在制作一个程序来计算物体移动的距离,但是当我使用45作为角度运行程序时,sin45和cos45是等效的,垂直高度和水平高度的输出是不同的

import math

angle = float(input("Enter Angle of Movement(In Degrees): "))
print("Angle is: ",angle,"°")

horizontal_distance = (abs(overall_distance*math.sin(90-angle)))
print("Horizontal Distance:",horizontal_distance,"m")

vertical_distance = (abs(overall_distance*math.cos(90-angle)))
print("Vertical Distance:",vertical_distance,"m")

正弦和余弦的输入值以弧度为单位,而不是度。

输入以弧度为单位,而不是度。这是文档-

相反,应该用sinmath.pi/2-angle替换sin90 angle

更新:
刚刚看到你关于将度转换为弧度的帖子。第二个问题可以使用math.radiansdegree

import math
x = math.radians(float(input()))
y = math.radians(float(input()))
SIN = math.sin(x)
COS = math.cos(y)
print(x)
print(y)
print(SIN)
print(COS)


45 
45
0.7853981633974483
0.7853981633974483
0.7071067811865476
0.7071067811865476

感谢回复,我正在按照规范工作,其中一个要求是用户应以度为单位输入角度。这有什么办法吗?再次感谢您是的,您可以在计算三角函数之前将输入值从度转换为弧度。@HarrisonBowers有一个简单的方法。从numpy导入deg2rad并这样使用:deg2radangle_in_degrees我想你也可以用math乘以角度in degrees.pi/180即使表达式是弧度,sin和cos 45可能仍然不同,因为无法用浮点精确表示pi,而且因为在IEEE-754中,超越运算不需要进行适当的四舍五入,所以非常感谢:我对python非常陌生,所以非常感谢您的帮助。编辑:尽管它们是相等的,但似乎仍然为我输出不同的值。你能写下将度转换为弧度的代码并计算它的sin吗?尝试用math.pi/2-math.radianglei替换90度。我想我现在得到了!非常感谢您的帮助和其他人的评论。感谢您花时间帮助一个新用户:还请注意:print math.sinmath.radians45==math.cosmath.radians45;返回False。是的,它们是等价的,但它们不一样!