我有这个代码转换N052.39.51格式,但我需要更高的精度,所以我需要转换N052.39.51.884。
public double ToDecimleCoordDouble(double degrees, double minutes, double seconds)
{
return degrees + (minutes / 60) + (seconds / 3600);
}
答案 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
。