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

时间:2015-06-27 08:14:04

标签: c# coordinates

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

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

2 个答案:

答案 0 :(得分:2)

我不太确定角度是否有一些“毫秒”。但如果它们确实存在,那么一定程度上肯定有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秒”。

答案 1 :(得分:1)

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

由于度和分数不能包含该形式的小数部分,我会考虑将这两个参数int