Tan()返回错误的值

时间:2011-08-24 18:33:56

标签: vba excel-vba excel-2007 excel

我正在尝试计算三点之间的角度,我需要使用切线函数tan()。奇怪的是VBA返回错误的值。

例如:

  

tan(209)= 0.554309051

但是在VBA中:

  

tan(209)= -.696695985548265

我的朋友告诉我有关“正常化”的事情。但我不明白他在说什么,怎么做。为什么会这样?

4 个答案:

答案 0 :(得分:4)

根据this VBA使用弧度。 将度数转换为弧度,(度* 2 * pi)/ 360

tan((209 * 2 * 3.14)/360)

答案 1 :(得分:1)

(如果使用TAN是否正确则不解决):

也许你的细胞以某种特殊的方式形成,它正在改变价值。 在Excel 2007中,工作表函数和VBA都为 tan(209)返回 -11.8641847236695 这与上面的内容不同。

答案 2 :(得分:0)

除了混淆弧度和度数之外,我认为您可能会混淆tangentarctangent

在评论中,您说您拨打Tan,如下所示:Math.Tan((A(2) - B(2)) / (B(1) - A(1)))。这是为切线提供角度参数的非常非典型的方法!在另一个评论中,你暗示你希望这给你一个角度(编辑:或“弧度”)。但切线不会给你一个角度或“弧度”!

我无法相信没有其他人指出这一点。这位物理学家感到愤怒。

基于此,我相信你真正想要的是反正切的,即Math.Atn((A(2) - B(2)) / (B(1) - A(1)))。当提供相对于相邻边的相对长度比时,这将给出一个角度(以弧度表示)。

当然,上面的内容很大程度上是推测性的,因为我不知道你到底想要完成什么,但是从我可以从你的问题和评论中散布的一些隐含信息中梳理出来,这的确是什么我会把钱花在上面。

答案 3 :(得分:0)

看起来VB就像Excel一样,假设Tangent的输入值是弧度。如果它不是弧度,则需要将角度转换为弧度。

在Excel中,您必须使用RADIANS()函数将数据从角度转换为弧度。使用DEGREES()函数转换回来。