1

有人知道 fmod 的 C# 等价物是什么吗?我正在尝试将这行代码转换为 C#。

$lon_rad = fmod(($long1+$dlon_rad + M_PI), 2*M_PI) - M_PI;

这是我到目前为止所拥有的。我只需要转换的 fmod。

double lon_rad = ((lon1+dlon_rad + Math.PI), 2*Math.PI) - Math.PI;
4

4 回答 4

3

其他人给出了正确的运算符来使用,但没有给出完整的语法,这将是:

double lon_rad = ((lon1+dlon_rad + Math.PI) % (2*Math.PI)) - Math.PI;
于 2009-11-20T18:45:04.400 回答
2

使用对标准库的 P/Invoked 调用(从这里):

[DllImport("msvcrt.dll")]
static extern double fmod(double x, double y);
于 2009-11-20T18:37:03.103 回答
0

您是否尝试过 % 模数运算符?

于 2009-11-20T18:35:05.577 回答
0
public static double fmod(double dividend, double divisor )
{
    double Modulus = 
                     (Math.Abs(dividend) - (Math.Abs(divisor) * 
                     (Math.Floor(Math.Abs(dividend) / Math.Abs(divisor))))) * 
                     Math.Sign(dividend);

    return Modulus;
}
于 2017-12-05T02:03:12.313 回答