我正在执行计算以获取以度为单位的值,但我遇到了JavaScript运算的结果,涉及三角运算的类型,以弧度返回这些值。
公式
23.45 * sin(360 * ((284 + dn)/365))
所以我在JavaScript中执行如下:
var miVariable = 23.45 * Math.sin(360 * ((284 + 196)/365));
console.log(miVariable);
返回值是19.15,当然是对最终值进行四舍五入。
问题是JavaScript以弧度给出结果,而我想要以度为单位。我搜索了,他们给出的解决方案是将结果乘以弧度,如下所示:
miVariable * (180/Math.PI);
...但返回值为1097.2141776755263
类似地,如果我将结果相乘但仅从正弦运算的计算中得出,则它落在-360和360之间的可能角度范围内。
var valorSeno = Math.sin(360 * ((284 + 196)/365));
var valorFinal = valorSeno * (180/Math.PI);
console.log(valorFinal);
同样,在这里我仍然不乘以值23.45,因为它最后返回相同的值。
我需要的最终值是21.51
您必须对约定进行一些操作以保持所有等价性。
您很清楚Math.sin(x)函数接收其参数为弧度。结果以弧度表示。
从那里,应用学校的代数来解决正弦并进行最后一次转换以获得度数。
您可以得到度数的结果,而无需将弧度转换为度数。相反,我决定对数学公式做一个小改动。
原来的公式是这样的:
我只是将 pi ( ) 更改
360
为 double pi (2*Math.PI
)。显然,180º 是 pi 的等价物。我已经对该函数进行了编程,使其适应一年中的天数,即是否是闰年。
我认为转换它的公式是错误的,应该是这样的:
我向你保证,这个公式有效:
var grados = radianes * (180 / Math.PI);