度数计算不准确

5 c# degrees radians

我正在使用以下代码将弧度转换为度数并对其进行一些算术运算。

private double getDegrees(double rad)
{
    double deg = rad * Mathf.Rad2Deg;

     double degree = (-135 - deg) % 360;

     return degree;
}
Run Code Online (Sandbox Code Playgroud)

数值计算不准确。我在 Python 中使用相同的代码,结果非常准确,如下所示,

def getDegree(rad):
    return (-135 - math.degrees(rad)) % 360
Run Code Online (Sandbox Code Playgroud)

如何使用 c# 获得准确的度数?

Input: -2.54 Output: 10.750966993188058
Input 2.57   Output 77.6960764459401
Input -0.62  Output 260.9199271359733
Input 0.52   Output 195.1409838350769
Run Code Online (Sandbox Code Playgroud)

注意:输出后 (-135 - deg) % 360;

c#的输出如下,

Input -2.54  Output 11.0295281217168
Input 2.56   Output -282.127098553015
Input -0.63  Output -98.8646242270579
Input 0.51   Output -164.592296943409
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 4

由于%当输入为负数时,C# 中的运算符将返回负值,因此您必须通过添加 360 将它们转换回正数:

private double getDegrees(double rad)
{
     double deg = rad * Mathf.Rad2Deg;

     double degree = (-135 - deg) % 360;

     return degree < 0 ? degree + 360 : degree;
}
Run Code Online (Sandbox Code Playgroud)

在线尝试一下