将毫秒坐标转换为十进制线。 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
。
我有这段代码可以转换 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
。