将毫秒坐标转换为十进制线。 C#

Converting millisecond coordinates to decimal cords. C#

我有这段代码可以转换 N052.39.51 格式,但我需要更高的精度,所以我需要转换 N052.39.51.884。

    public double ToDecimleCoordDouble(double degrees, double minutes, double seconds)
    {
        return degrees + (minutes / 60) + (seconds / 3600);
    }

我不太确定是否有一些 "milliseconds" 角度。但如果它们确实存在,那么一个度数肯定有 3 600 000 毫秒。
您可以通过这种方式轻松地向您的函数添加一个额外的参数:

public double ToDecimleCoordDouble(int degrees, int minutes, int seconds, int milliseconds)
{
    return degrees + (minutes / 60.0) + (seconds / 3600.0) + (milliseconds / 3600000.0);
}

而且,是的,您最好使用 int,因为在您的情况下,下一个参数已经涵盖了小数部分,并且不能有双精度值。 我的意思是,不应该有“61.5度5.5分”,因为它应该是“61度35分30秒”。

秒可以有小数部分,但数学是一样的,只需将 51.884 作为秒参数传递即可。

由于度数和分钟不能包含那种形式的小数部分,我会考虑制作这两个参数 int