python中的sin方程一直回答错误的答案

时间:2016-04-26 16:30:44

标签: equation sin

我想我有一个bug版本的python,因为我得到了错误的结果。如果您输入:sin(degrees(39))* 41/28直接进入谷歌,您将获得值0.92150485832。这是给定方程的正确值。

当我尝试在python中执行此操作时,我得到值-1.11258224646。

我使用的代码:

Manifest-Version: 1.0
 main-class: run

我还尝试了以下代码(删除了39周围的度数),返回值1.41127181563。

number= float(sin(degrees(39))*41/28)
print number

只是为了踢,我也尝试了这样的代码:

number= float(sin(39)*41/28)
print number

此代码返回了答案0.921504858323,这将是第一个等式的正确答案

这不应该是可能的,因为弧度为39是0.680678408。并在等式中使用该数字:(sin(0.680678408)* 41)/ 28我们得到0.017395421,而不是0.921504858323。

有人可以解释一下这里发生了什么。我迷路了。

2 个答案:

答案 0 :(得分:2)

解释是谷歌和蟒蛇之间的“度”和“弧度”的解释不同。

  1. 在python中,这两个是从一个单元转换到另一个单元的函数:

    • math.degrees(x) - 将角度x从弧度转换为度数。
    • math.radians(x) - 将角度x从度数转换为弧度。
  2. 要评估“float(sin(radians(39))* 41/28)”语句python将39度角转换为弧度(0.680678)然后计算sin(x),它返回x弧度的正弦,因此我们将得到罪(39度)* 41/28。

    1. Google使用2个字来澄清单位而不是转换。 评价“罪(度(39))* 41/28”谷歌将其理解为“罪(39度)* 41/28”,因此它不是在弧度和度数之间转换单位。这只是39度的正弦计算。

答案 1 :(得分:0)

使用此

    >> math.sin(math.radians(39))*41/28
    0.9215048583229761