如何在Delphi中将十进制坐标转换为结构化坐标?

时间:2014-05-08 15:05:41

标签: delphi

嘿那些人正在为学校和项目工作,它要求用户输入小数点坐标并将其转换为结构化格式,即:

  

17.428333° - > 17°25'42“

有谁可能知道怎么做?该计划也应该能够以相反的方式做到;输入结构化坐标17° 25' 42"并转换为小数点坐标17.4283333

我有用于转换的基本数学。要从结构化坐标转换为十进制坐标,您可以使用以下内容:

  

17 + 25/60±三千六分之四十二

并且从十进制转换为结构化取第一个值17作为度数然后计算分钟

  

17.4285-17 = 0.4285 * 60 = 25.71

除去小数或舍入小数以获得分钟,然后计算秒数

  

25.71-25 = 0.71 * 60 = 42.6

要么舍入小数,要么除去小数秒。

1 个答案:

答案 0 :(得分:3)

假设您从浮点变量x中的坐标开始。像这样计算度,分和秒:

Degrees := Trunc(x);
x := (x - Degrees)*60;
Minutes := Trunc(x);
x := (x - Minutes)*60
Seconds := Round(x);

相反的方向更简单。你需要的表达是:

Degrees + Minutes/60 + Seconds/3600