代码之家  ›  专栏  ›  技术社区  ›  CyberAP

PHP中的Sin和cos与Javascript的区别

  •  2
  • CyberAP  · 技术社区  · 8 年前

    我试图得到一个角度的正反两方面 9.590124942537262 .

    在Javascript中,我会这样做:

    var a = Math.sin(9.590124942537262);
    var b = Math.cos(9.590124942537262);
    

    结果将是:

    a == -0.16459459028073223
    b == -0.9863613034027227
    

    如果我在PHP中执行相同的操作,如下所示:

    $a = sin(9.590124942537262 * M_PI / 180); // ≈ 0.16737916966136 rad
    $b = cos(9.590124942537262 * M_PI / 180);
    

    $a == 0.16659953926461
    $b == 0.9860246414349
    

    问题是:如何使这些操作统一起来,使PHP返回带负号的正确值?我试着改变角度,但没用。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Robinlemon    8 年前

    在您的PHP示例中,您试图从度转换为弧度,因为您实际上提供了要转换为弧度的弧度,您只需添加Pi弧度,或180度,因此得到了负结果。

    您应该能够使用相同的参数在每种语言中编写代码:

    Math.sin(9.590124942537262);
    Math.cos(9.590124942537262);
    
    sin(9.590124942537262);
    cos(9.590124942537262);