【问题标题】:Different values for sin(45) and cos(45) in python despite them being equivalentpython 中 sin(45) 和 cos(45) 的不同值,尽管它们是等价的
【发布时间】:2023-03-18 20:09:01
【问题描述】:

我正在制作一个计算物体移动距离的程序,但是当我使用 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")

【问题讨论】:

    标签: python math trigonometry


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复,我正在按照规范工作,其中一个要求是用户应以度为单位输入角度。有没有办法解决?再次感谢
    • 是的,在计算三角函数之前,您始终可以将输入值从度数转换为弧度数。
    • @HarrisonBowers 有一个简单的方法来做到这一点。 from numpy import deg2rad 并像这样使用它:deg2rad(angle_in_degrees)(我认为)
    • 你也可以将角度乘以math.pi / 180
    • 即使表达式是弧度,sin 和 cos 45 可能仍然不同,因为无法用浮点数精确表示 pi,并且不需要正确舍入超越运算IEEE-754 Why do sin(45) and cos(45) give different results?
    【解决方案2】:

    输入以弧度为单位,而不是度数。这是文档 - https://docs.python.org/3/library/math.html

    相反,您应该将 sin(90-angle) 替换为 sin(math.pi/2 - angle)。

    更新: 刚刚看到你关于将度数转换为弧度的帖子。你可以使用 math.radians(degree)

    【讨论】:

    • 非常感谢 :) 我对 python 很陌生,所以我很感激帮助。编辑:即使它们是等效的,似乎仍然为我输出不同的值
    • 你能写出将度数转换为弧度并计算其sin的代码吗?
    • 尝试将“90-angle”替换为“math.pi/2 - math.radians(angle)”
    • 我想我现在明白了!非常感谢您的帮助(以及其他人的 cmets)。感谢您花时间帮助新用户:)
    • 还要注意这个的输出:print math.sin(math.radians(45)) == math.cos(math.radians(45)); 返回False。所以是的,它们是等价的,但它们不一样!
    【解决方案3】:

    第二个问题

    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
    

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多